diff --git a/server/routes/del/[file].delete.ts b/server/routes/del/[file].delete.ts new file mode 100644 index 0000000..a4fea03 --- /dev/null +++ b/server/routes/del/[file].delete.ts @@ -0,0 +1,29 @@ +import { createReadStream, existsSync, unlink, unlinkSync } from "node:fs" +import { } from "fs/promises" +import { join } from "path" + + +export default defineEventHandler(async (event) => { + const session = await getUserSession(event) + const conf = await useRuntimeConfig() + //const query = await getQuery(event) + + // @ts-ignore + const userId = session.secure?.user_id; + if (userId == undefined || userId == null) + throw createError({ status: 401 }) + + const file = await getRouterParam(event, 'file'); + if (file == undefined) + throw createError({ status: 400, message: "No file"}) + + //const def_filepath = "/home/suricatingss/Projects/WebStorm/yt2mp3/server/fastapi_server/downloads"; + const def_filepath = conf.download_url + const filepath = join(def_filepath, userId.toString(), file.toString()) + + if ( existsSync(filepath) ) { + unlinkSync(filepath) + return { deleted: true } + } else + throw createError({ status: 404, message: "Not found"}) + }) diff --git a/server/routes/download/[file].get.ts b/server/routes/download/[file].get.ts index 69d6cb5..0b2af1b 100644 --- a/server/routes/download/[file].get.ts +++ b/server/routes/download/[file].get.ts @@ -27,8 +27,9 @@ export default defineEventHandler(async (event) => { setHeader(event, 'Content-Disposition', `attachment; filename="${file}"`) const file_stream = createReadStream(filepath) + - file_stream.on("close", () => unlink(filepath, (err) => { if (err) console.warn(err.message) })) + //file_stream.on("close", () => unlink(filepath, (err) => { if (err) console.warn(err.message) })) return file_stream; }) \ No newline at end of file