delete unfinished uploads if HFS is terminated

Massimo Melina committed Dec 31, 2024 at 18:02 UTC 5bac457881e990be0ca8eb810f9efe1f0ea71df9
1 file changed +8
src/upload.ts
+8
@@ -21,12 +21,20 @@ import _ from 'lodash'
21 import events from './events'
22 import { rename, rm } from 'fs/promises'
23 import { expiringCache } from './expiringCache'
24 +import { onProcessExit } from './first'
25
26 export const deleteUnfinishedUploadsAfter = defineConfig<undefined|number>('delete_unfinished_uploads_after', 86_400)
27 export const minAvailableMb = defineConfig('min_available_mb', 100)
28 export const dontOverwriteUploading = defineConfig('dont_overwrite_uploading', true)
29
30 const waitingToBeDeleted: Record<string, ReturnType<typeof setTimeout>> = {}
31 +onProcessExit(() => {
32 + if (!Object.keys(waitingToBeDeleted).length) return
33 + console.log("removing unfinished uploads")
34 + for (const path in waitingToBeDeleted)
35 + try { fs.rmSync(path, { force: true }) }
36 + catch {}
37 +})
38
39 const ATTR_UPLOADER = 'uploader'
40