| 12345678910111213141516171819202122232425262728293031323334353637 |
- const settings = require('settings-sharelatex')
- const logger = require('logger-sharelatex')
- logger.log(
- {
- backend: settings.filestore.backend,
- fallback: settings.filestore.fallback && settings.filestore.fallback.backend
- },
- 'Loading backend'
- )
- if (!settings.filestore.backend) {
- throw new Error('no backend specified - config incomplete')
- }
- function getPersistor(backend) {
- switch (backend) {
- case 'aws-sdk':
- case 's3':
- return require('./S3Persistor')
- case 'fs':
- return require('./FSPersistor')
- default:
- throw new Error(`unknown filestore backend: ${backend}`)
- }
- }
- let persistor = getPersistor(settings.filestore.backend)
- if (settings.filestore.fallback && settings.filestore.fallback.backend) {
- const migrationPersistor = require('./MigrationPersistor')
- persistor = migrationPersistor(
- persistor,
- getPersistor(settings.filestore.fallback.backend)
- )
- }
- module.exports = persistor
|