Storage Adapters
Configure S3-compatible, R2, or filesystem storage.
S3-compatible adapter
import { createS3CompatibleStorageAdapter } from "@fragno-dev/upload";
const storage = createS3CompatibleStorageAdapter({
bucket: process.env.UPLOAD_S3_BUCKET!,
endpoint: process.env.UPLOAD_S3_ENDPOINT!,
signer,
});The signer is responsible for SigV4 signing and presigning. This works with AWS S3 and compatible providers such as Cloudflare R2.
R2 adapter
import { createR2StorageAdapter } from "@fragno-dev/upload";
const storage = createR2StorageAdapter({
bucket: process.env.R2_BUCKET!,
endpoint: process.env.R2_ENDPOINT!,
signer,
});The R2 adapter only applies R2-specific defaults; it still relies on the S3-compatible signer.
Filesystem adapter (Node)
import { createFilesystemStorageAdapter } from "@fragno-dev/upload";
const storage = createFilesystemStorageAdapter({
rootDir: "./uploads",
});Filesystem storage is server-streamed (proxy-only) and intended for local development or small deployments.