From b649d8bf8e849aff3f350e3c5fd0151a063b9706 Mon Sep 17 00:00:00 2001 From: Elias Schneider Date: Thu, 1 Dec 2022 23:21:12 +0100 Subject: [PATCH] feat: add job that deleted temporary files --- backend/src/jobs/jobs.service.ts | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/backend/src/jobs/jobs.service.ts b/backend/src/jobs/jobs.service.ts index 4a68f2c..b85730b 100644 --- a/backend/src/jobs/jobs.service.ts +++ b/backend/src/jobs/jobs.service.ts @@ -1,5 +1,6 @@ import { Injectable } from "@nestjs/common"; import { Cron } from "@nestjs/schedule"; +import * as fs from "fs"; import * as moment from "moment"; import { FileService } from "src/file/file.service"; import { PrismaService } from "src/prisma/prisma.service"; @@ -35,6 +36,22 @@ export class JobsService { console.log(`job: deleted ${expiredShares.length} expired shares`); } + @Cron("0 0 * * *") + deleteTemporaryFiles() { + const files = fs.readdirSync("./data/uploads/_temp"); + + for (const file of files) { + const stats = fs.statSync(`./data/uploads/_temp/${file}`); + const isOlderThanOneDay = moment(stats.mtime) + .add(1, "day") + .isBefore(moment()); + + if (isOlderThanOneDay) fs.rmSync(`./data/uploads/_temp/${file}`); + } + + console.log(`job: deleted ${files.length} temporary files`); + } + @Cron("0 * * * *") async deleteExpiredRefreshTokens() { const expiredRefreshTokens = await this.prisma.refreshToken.deleteMany({