import { S3Client } from "@aws-sdk/client-s3"; import type { Handle } from "@sveltejs/kit"; // We would obviously read from .env in prod, but it's an annoying indirection for this demo. function getS3Client(): S3Client { const client = new S3Client({ endpoint: "http://localhost:9000", region: "us-east-1", // Required, but ignored for local usage. credentials: { accessKeyId: "minioadmin", secretAccessKey: "minioadmin", }, forcePathStyle: true, // Required for local service since we obv. can't use subdomains. }); return client; } export const s3Handle = (async ({ event, resolve }) => { const s3Client = getS3Client(); event.locals.s3Client = s3Client; try { return await resolve(event); } finally { s3Client.destroy(); } }) satisfies Handle;