Object auto delete when upload

This commit is contained in:
Sean Morley
2024-06-12 13:35:23 +00:00
parent d27971692d
commit 157d9fe99c
2 changed files with 25 additions and 2 deletions

View File

@@ -1,6 +1,6 @@
// src/routes/api/upload.js
import { ensureBucketExists, uploadObject } from "$lib/server/s3";
import { deleteObject, ensureBucketExists, uploadObject } from "$lib/server/s3";
import type { RequestEvent } from "@sveltejs/kit";
import { generateId } from "lucia";
@@ -8,7 +8,7 @@ export async function POST(event: RequestEvent): Promise<Response> {
try {
const contentType = event.request.headers.get("content-type") ?? "";
const fileExtension = contentType.split("/").pop();
const fileName = `${generateId(25)}.${fileExtension}`;
const fileName = `${generateId(50)}.${fileExtension}`;
const bucket = event.request.headers.get("bucket") as string;
if (!fileExtension || !fileName) {
@@ -49,6 +49,11 @@ export async function POST(event: RequestEvent): Promise<Response> {
await ensureBucketExists(bucket);
if (event.locals.user?.icon) {
const key: string = event.locals.user.icon.split("/").pop() as string;
await deleteObject(bucket, key);
}
const objectUrl = await uploadObject(
bucket,
fileName,