dimah-s3v0.4.1

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

lib/s3.ts
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 },
});

On this page