diff --git a/src/tools/clean-remote-files.ts b/src/tools/clean-remote-files.ts new file mode 100644 index 000000000..28c76345c --- /dev/null +++ b/src/tools/clean-remote-files.ts @@ -0,0 +1,30 @@ +import * as promiseLimit from 'promise-limit'; +import DriveFile, { IDriveFile } from '../models/drive-file'; +import del from '../services/drive/delete-file'; + +const limit = promiseLimit(16); + +DriveFile.find({ + 'metadata._user.host': { + $ne: null + }, + 'metadata.deletedAt': { $exists: false } +}, { + fields: { + _id: true + } +}).then(async files => { + console.log(`there is ${files.length} files`); + + await Promise.all(files.map(file => limit(() => job(file)))); + + console.log('ALL DONE'); +}); + +async function job(file: IDriveFile): Promise { + file = await DriveFile.findOne({ _id: file._id }); + + await del(file, true); + + console.log('done', file._id); +}