Merge pull request #6116 from overleaf/bg-remove-large-broken-docs

[web] allow large broken docs to be deleted

GitOrigin-RevId: 0322f55fcc5448ec1d6e6ee96056b80980bd3406
This commit is contained in:
Brian Gough 2021-12-13 15:32:14 +00:00 committed by Copybot
parent 41c034b5fc
commit e7f040ecf7

View file

@ -15,7 +15,12 @@ function parseArgs() {
boolean: ['commit'],
})
const commit = args.commit
return { commit, maxDocSize: 2 * 1024 * 1024 }
const deleteOversized = args['delete-oversized']
return {
commit,
deleteOversized,
maxDocSize: 2 * 1024 * 1024,
}
}
function extractObjectId(s) {
@ -74,12 +79,29 @@ async function processDoc(docId) {
return
}
// if the doc is too big we will need to convert it to a file, skip it for now
// or delete the doc if the --delete-oversized option is used
const size = doc.lines.reduce((sum, line) => sum + line.length + 1, 0)
if (size > opts.maxDocSize) {
logger.warn(
{ docId, projectId, size },
'doc that exceeds max size, cannot restore'
)
if (opts.deleteOversized) {
logger.info(
{ docId, projectId, size, commit: opts.commit },
'forcing delete of large doc'
)
if (opts.commit) {
try {
await deleteDocFromRedis(projectId, docId)
} catch (err) {
logger.error(
{ docId, projectId, deleteErr: err },
'error deleting doc from redis'
)
}
}
}
return
}
// now we have a doc content from redis, in a project where the doc has been deleted