Merge pull request #21320 from overleaf/jpa-filestore-controller

[filestore] only call handler from controller

GitOrigin-RevId: 1d1bbe4e961b300a919ae79e3c760322304783bc
This commit is contained in:
Jakob Ackermann
2024-10-25 08:05:57 +00:00
committed by Copybot
parent e56e5442fd
commit d1d65e65ad
3 changed files with 23 additions and 31 deletions
+10 -11
View File
@@ -1,4 +1,3 @@
const PersistorManager = require('./PersistorManager')
const FileHandler = require('./FileHandler')
const metrics = require('@overleaf/metrics')
const parseRange = require('range-parser')
@@ -139,17 +138,17 @@ function copyFile(req, res, next) {
})
req.requestLogger.setMessage('copying file')
PersistorManager.copyObject(bucket, `${oldProjectId}/${oldFileId}`, key)
.then(() => res.sendStatus(200))
.catch(err => {
if (err) {
if (err instanceof Errors.NotFoundError) {
res.sendStatus(404)
} else {
next(err)
}
FileHandler.copyObject(bucket, `${oldProjectId}/${oldFileId}`, key, err => {
if (err) {
if (err instanceof Errors.NotFoundError) {
res.sendStatus(404)
} else {
next(err)
}
})
} else {
res.sendStatus(200)
}
})
}
function deleteFile(req, res, next) {
+6
View File
@@ -10,6 +10,7 @@ const { ConversionError, InvalidParametersError } = require('./Errors')
const metrics = require('@overleaf/metrics')
module.exports = {
copyObject: callbackify(copyObject),
insertFile: callbackify(insertFile),
deleteFile: callbackify(deleteFile),
deleteProject: callbackify(deleteProject),
@@ -18,6 +19,7 @@ module.exports = {
getFileSize: callbackify(getFileSize),
getDirectorySize: callbackify(getDirectorySize),
promises: {
copyObject,
getFile,
getRedirectUrl,
insertFile,
@@ -28,6 +30,10 @@ module.exports = {
},
}
async function copyObject(bucket, sourceKey, destinationKey) {
await PersistorManager.copyObject(bucket, sourceKey, destinationKey)
}
async function insertFile(bucket, key, stream) {
const convertedKey = KeyBuilder.getConvertedFolderKey(key)
if (!convertedKey.match(/^[0-9a-f]{24}\/([0-9a-f]{24}|v\/[0-9]+\/[a-z]+)/i)) {