From a0940873429a8e33bc2cfae132efe5e6fdf66ba7 Mon Sep 17 00:00:00 2001 From: Tobi Kremer Date: Wed, 21 Jun 2023 12:47:34 +0200 Subject: [PATCH] Remove temporary files after processing (#5456) Co-authored-by: Tom Moor --- server/queues/tasks/ExportTask.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/server/queues/tasks/ExportTask.ts b/server/queues/tasks/ExportTask.ts index 159168bed..906b2d15b 100644 --- a/server/queues/tasks/ExportTask.ts +++ b/server/queues/tasks/ExportTask.ts @@ -40,6 +40,8 @@ export default abstract class ExportTask extends BaseTask { }, }); + let filePath: string | undefined; + try { Logger.info("task", `ExportTask processing data for ${fileOperationId}`, { includeAttachments: fileOperation.includeAttachments, @@ -49,7 +51,7 @@ export default abstract class ExportTask extends BaseTask { state: FileOperationState.Creating, }); - const filePath = await this.export(collections, fileOperation); + filePath = await this.export(collections, fileOperation); Logger.info("task", `ExportTask uploading data for ${fileOperationId}`); @@ -95,6 +97,12 @@ export default abstract class ExportTask extends BaseTask { }).schedule(); } throw error; + } finally { + if (filePath) { + void fs.promises.unlink(filePath).catch((error) => { + Logger.error(`Failed to delete temporary file ${filePath}`, error); + }); + } } }