From 1c6f8dda5e71239de1190259f4f343e2613295c3 Mon Sep 17 00:00:00 2001 From: Tom Moor Date: Thu, 9 Nov 2023 19:20:15 -0500 Subject: [PATCH] fix: Cleanup empty folders when using local storage provider, closes #5978 --- server/storage/files/LocalStorage.ts | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/server/storage/files/LocalStorage.ts b/server/storage/files/LocalStorage.ts index 631a978bc..9b9e15959 100644 --- a/server/storage/files/LocalStorage.ts +++ b/server/storage/files/LocalStorage.ts @@ -1,5 +1,5 @@ import { Blob } from "buffer"; -import { mkdir, unlink } from "fs/promises"; +import { mkdir, unlink, rmdir } from "fs/promises"; import path from "path"; import { Readable } from "stream"; import { @@ -97,6 +97,17 @@ export default class LocalStorage extends BaseStorage { await unlink(filePath); } catch (err) { Logger.warn(`Couldn't delete ${filePath}`, err); + return; + } + + const directory = path.dirname(filePath); + try { + await rmdir(directory); + } catch (err) { + if (err.code === "ENOTEMPTY") { + return; + } + Logger.warn(`Couldn't delete directory ${directory}`, err); } }