Delete
Delete hooks for auth and post-delete cleanup.
Enable delete in config before these hooks run:
delete: { enabled: true },Flow: guard → S3 delete → onDeleted
Delete guard
delete: {
enabled: true,
guard: async ({ key, bucket }) => {
// authorize deletion
},
},DeleteGuardContext
Prop
Type
import type { DeleteGuardContext } from "@dimah-s3/server";On deleted
delete: {
enabled: true,
onDeleted: async ({ key, bucket }) => {
console.log(`deleted: ${key} from ${bucket}`);
},
},DeleteOnDeletedContext
Prop
Type
import type { DeleteOnDeletedContext } from "@dimah-s3/server";Example
import { dimahS3 } from "@dimah-s3/server";
import { s3Client, defaultBucket } from "@/lib/s3-client";
export const s3 = dimahS3({
s3: s3Client,
defaultBucket,
delete: {
enabled: true,
guard: async ({ key, bucket }) => {
// authorize deletion
},
onDeleted: async ({ key, bucket }) => {
console.log(`deleted: ${key} from ${bucket}`);
},
},
upload: { enabled: true },
download: { enabled: true },
});