persistor.js 1006 B

123456789101112131415161718192021222324252627
  1. const _ = require('lodash')
  2. const config = require('config')
  3. const metrics = require('@overleaf/metrics')
  4. const objectPersistor = require('@overleaf/object-persistor')
  5. const persistorConfig = _.cloneDeep(config.get('persistor'))
  6. function convertKey(key, convertFn) {
  7. if (_.has(persistorConfig, key)) {
  8. _.update(persistorConfig, key, convertFn)
  9. }
  10. }
  11. convertKey('s3.signedUrlExpiryInMs', s => parseInt(s, 10))
  12. convertKey('s3.httpOptions.timeout', s => parseInt(s, 10))
  13. convertKey('s3.maxRetries', s => parseInt(s, 10))
  14. convertKey('s3.pathStyle', s => s === 'true')
  15. convertKey('gcs.unlockBeforeDelete', s => s === 'true')
  16. convertKey('gcs.unsignedUrls', s => s === 'true')
  17. convertKey('gcs.signedUrlExpiryInMs', s => parseInt(s, 10))
  18. convertKey('gcs.deleteConcurrency', s => parseInt(s, 10))
  19. convertKey('gcs.retryOptions.maxRetries', s => parseInt(s, 10))
  20. convertKey('fallback.buckets', s => JSON.parse(s || '{}'))
  21. persistorConfig.Metrics = metrics
  22. module.exports = objectPersistor(persistorConfig)