mirror of
https://github.com/overleaf/overleaf.git
synced 2025-02-17 02:23:59 +00:00
[filestore] migrate to minio as S3 backend for running tests against GitOrigin-RevId: aa098d8baa4445f5dec7d651b6cf5ed081b0a331
45 lines
1.1 KiB
JavaScript
45 lines
1.1 KiB
JavaScript
const logger = require('@overleaf/logger')
|
|
const ObjectPersistor = require('@overleaf/object-persistor')
|
|
const Settings = require('@overleaf/settings')
|
|
const { promisify } = require('util')
|
|
const App = require('../../../app')
|
|
const FileHandler = require('../../../app/js/FileHandler')
|
|
|
|
logger.logger.level('info')
|
|
|
|
class FilestoreApp {
|
|
async runServer() {
|
|
if (!this.server) {
|
|
await new Promise((resolve, reject) => {
|
|
this.server = App.listen(
|
|
Settings.internal.filestore.port,
|
|
'127.0.0.1',
|
|
err => {
|
|
if (err) {
|
|
return reject(err)
|
|
}
|
|
resolve()
|
|
}
|
|
)
|
|
})
|
|
}
|
|
|
|
this.persistor = ObjectPersistor({
|
|
...Settings.filestore,
|
|
paths: Settings.path,
|
|
})
|
|
FileHandler._TESTONLYSwapPersistorManager(this.persistor)
|
|
}
|
|
|
|
async stop() {
|
|
if (!this.server) return
|
|
const closeServer = promisify(this.server.close).bind(this.server)
|
|
try {
|
|
await closeServer()
|
|
} finally {
|
|
delete this.server
|
|
}
|
|
}
|
|
}
|
|
|
|
module.exports = FilestoreApp
|