interface IS3Backend
Since 0.1.0

The S3 BACKEND surface this package drives — not an @aws-sdk/client-s3 client.

Renamed from IAwsS3Client because that name, and the docs around it, promised something it never was: the real SDK's surface is send(command), so injecting an actual S3Client was rejected with Injected S3 client is missing required methods (X8-10). What this declares is the shape adaptAwsS3Module PRODUCES from the SDK, so an application supplying it is implementing the backend, not swapping in a pre-configured client.

That makes it useful for a test double or a wholly different backend, and NOT a way to configure the underlying SDK client — there is no path today for a custom retry policy, timeout or proxy agent.

Methods

put(
path: string,
data: Uint8Array,
): Promise<void>
get(path: string): Promise<Uint8Array | null>
delete(path: string): Promise<boolean>
head(path: string): Promise<boolean>
getSignedUrl(
path: string,
expiresIn: number
): Promise<string>
getStream(path: string): Promise<ReadableStream<Uint8Array> | null>

Usage

import { type IS3Backend } from "storage-plugin/src/index.ts";