Documentation

Cloudflare R2

backends:
  - id: r2
    name: "Cloudflare R2"
    type: s3v4
    endpoint: https://<account-id>.r2.cloudflarestorage.com
    region: auto
    access_key_env: R2_ACCESS_KEY_ID
    secret_key_env: R2_SECRET_ACCESS_KEY
    path_style: false

#Notes

  • Replace <account-id> with your Cloudflare account ID — find it in the Cloudflare dashboard.
  • region: auto is what R2 expects. Setting a real AWS region works too, but auto is the documented value.
  • Generate the credentials via Cloudflare's R2 dashboard (R2 → Manage R2 API Tokens → Create API Token). The same token can be scoped per-bucket, which pairs nicely with Stowage's per-credential bucket scope on the embedded SigV4 proxy.
  • R2 does not implement bucket lifecycle in the AWS-compatible shape; the dashboard's lifecycle pane surfaces an upstream error there.
  • R2 does support multi-part uploads and the SigV4 path the proxy uses.