diff --git a/backend/src/scripts/utility/fileshare/identifyZombieFiles.js b/backend/src/scripts/utility/fileshare/identifyZombieFiles.js index f82fc6a2adc..2344399cb50 100644 --- a/backend/src/scripts/utility/fileshare/identifyZombieFiles.js +++ b/backend/src/scripts/utility/fileshare/identifyZombieFiles.js @@ -151,9 +151,12 @@ const run = async (outFile = DEFAULT_OUT_FILE, removeFiles = false, maxParallelR if (zombies.length) { logger.logInfo(`Writing all links to ${outFile}...`); - writeFileSync(outFile, zombies.join('\n')); + const chunks = splitArrayIntoChunks(zombies, maxParallelRefs); + for (let i = 0; i < chunks.length; ++i) { + writeFileSync(outFile, `${chunks[i].join('\n')}\n`, { flag: i === 0 ? 'w' : 'a' }); + logger.logInfo(`[${i}/${chunks.length}] ${chunks[i].length} file paths written...`); + } if (removeFiles) { - const chunks = splitArrayIntoChunks(zombies, maxParallelRefs); logger.logInfo(`Deleting files (${chunks.length} batches)`); for (let i = 0; i < chunks.length; ++i) { const group = chunks[i]; diff --git a/backend/tests/v5/scripts/fileshare/identifyZombieFiles.test.js b/backend/tests/v5/scripts/fileshare/identifyZombieFiles.test.js index 9eddf5a0301..d6282942d2d 100644 --- a/backend/tests/v5/scripts/fileshare/identifyZombieFiles.test.js +++ b/backend/tests/v5/scripts/fileshare/identifyZombieFiles.test.js @@ -81,7 +81,7 @@ const runTest = (data) => { }); test('Should remove zombie files if flag is set', async () => { - await IdentifyZombieFiles.run(undefined, true); + await IdentifyZombieFiles.run(undefined, true, 1); checkFileExists(data.referencedLinks, true); checkFileExists(data.toyLinks, true);