mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2026-11-12 13:13:45 +01:00
[object-persistor] lazy load all the persistor implementations (#31431)
GitOrigin-RevId: ca8a5a7d6402810b01351c89318cb2c5ed0b7385
This commit is contained in:
@@ -1,27 +1,30 @@
|
|||||||
const Logger = require('@overleaf/logger')
|
const Logger = require('@overleaf/logger')
|
||||||
const { SettingsError } = require('./Errors')
|
const { SettingsError } = require('./Errors')
|
||||||
const GcsPersistor = require('./GcsPersistor')
|
|
||||||
const { S3Persistor } = require('./S3Persistor')
|
|
||||||
const FSPersistor = require('./FSPersistor')
|
|
||||||
const MigrationPersistor = require('./MigrationPersistor')
|
|
||||||
const {
|
|
||||||
PerProjectEncryptedS3Persistor,
|
|
||||||
} = require('./PerProjectEncryptedS3Persistor')
|
|
||||||
|
|
||||||
function getPersistor(backend, settings) {
|
function getPersistor(backend, settings) {
|
||||||
switch (backend) {
|
switch (backend) {
|
||||||
case 'aws-sdk':
|
case 'aws-sdk':
|
||||||
case 's3':
|
case 's3': {
|
||||||
|
const { S3Persistor } = require('./S3Persistor')
|
||||||
return new S3Persistor(settings.s3)
|
return new S3Persistor(settings.s3)
|
||||||
case 's3SSEC':
|
}
|
||||||
|
case 's3SSEC': {
|
||||||
|
const {
|
||||||
|
PerProjectEncryptedS3Persistor,
|
||||||
|
} = require('./PerProjectEncryptedS3Persistor')
|
||||||
return new PerProjectEncryptedS3Persistor(settings.s3SSEC)
|
return new PerProjectEncryptedS3Persistor(settings.s3SSEC)
|
||||||
case 'fs':
|
}
|
||||||
|
case 'fs': {
|
||||||
|
const FSPersistor = require('./FSPersistor')
|
||||||
return new FSPersistor({
|
return new FSPersistor({
|
||||||
useSubdirectories: settings.useSubdirectories,
|
useSubdirectories: settings.useSubdirectories,
|
||||||
paths: settings.paths,
|
paths: settings.paths,
|
||||||
})
|
})
|
||||||
case 'gcs':
|
}
|
||||||
|
case 'gcs': {
|
||||||
|
const GcsPersistor = require('./GcsPersistor')
|
||||||
return new GcsPersistor(settings.gcs)
|
return new GcsPersistor(settings.gcs)
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
throw new SettingsError('unknown backend', { backend })
|
throw new SettingsError('unknown backend', { backend })
|
||||||
}
|
}
|
||||||
@@ -44,6 +47,7 @@ module.exports = function create(settings) {
|
|||||||
if (settings.fallback && settings.fallback.backend) {
|
if (settings.fallback && settings.fallback.backend) {
|
||||||
const primary = persistor
|
const primary = persistor
|
||||||
const fallback = getPersistor(settings.fallback.backend, settings)
|
const fallback = getPersistor(settings.fallback.backend, settings)
|
||||||
|
const MigrationPersistor = require('./MigrationPersistor')
|
||||||
persistor = new MigrationPersistor(primary, fallback, settings.fallback)
|
persistor = new MigrationPersistor(primary, fallback, settings.fallback)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user