File storage
Store and retrieve application objects through explicit filesystem, S3, or R2 providers with validated keys, metadata, streaming bodies, and signed access.
Portable object storage · Signed download and upload access
Store portable Playstack objects through a structural R2 binding with explicit public and signed URL capabilities.
Visit Cloudflare R2 ↗Store and retrieve application objects through explicit filesystem, S3, or R2 providers with validated keys, metadata, streaming bodies, and signed access.
Portable object storage · Signed download and upload access
@playstack/storage/r2 accepts a structural R2 bucket, so importing the adapter does not require ambient Cloudflare types. Object keys, metadata, prefixes, streaming reads, and capability checks remain portable.
import { createStorage } from '@playstack/storage'
import { R2StorageProvider } from '@playstack/storage/r2'
const storage = createStorage({
driver: new R2StorageProvider(env.ASSETS, {
publicBaseUrl: 'https://assets.example.com',
}),
})The Workers binding handles object operations but does not mint presigned URLs. Applications that require signed access supply a signer backed by R2's S3-compatible credentials. Bucket lifecycle and provider administration remain native operations.