Cloudflare R2
Use S3-compatible object storage without egress fees.
Setup
Create bucket
npx wrangler r2 bucket create app-assets
List buckets
npx wrangler r2 bucket list
Upload object
npx wrangler r2 object put app-assets/logo.png --file ./logo.png
S3-Compatible Access
-
Generate R2 API tokens with least privilege.
-
Use endpoint format: https://<accountid>.r2.cloudflarestorage.com .
-
Configure lifecycle rules for archive/delete.
Best Practices
-
Use short-lived signed URLs for private content.
-
Store user uploads in tenant-specific prefixes.
-
Enable object versioning for recovery-critical buckets.
Related Skills
-
cloudflare-workers - Signed URL generation
-
object-storage - Storage patterns