5 solution docs
Cloudflare R2 solution docs
S3-compatible object storage with free egress. You pay for storage and requests.
Pick Cloudflare R2 and all 5 land in docs/solutions/r2/, next to the rules and skills that reference them.
Every Cloudflare R2 doc in the registry
Tags: architecture · browser · cache-control · caching · cdn · cleanup · cloudflare · cors · cost · custom-domain · debugging · lifecycle · multipart · orphans · preflight · presigned · public-access · r2 · resumable · s3 · storage · uploads
Orphaned objects in R2: lifecycle rules and the sweep they cannot do
Direct-to-bucket uploads leak objects nobody references. Lifecycle rules clean up a tmp/ prefix and abandoned multipart parts; owner-scoped orphans need a reconciliation job.
r2 · storage · lifecycle · cleanup
The R2 upload that fails in the browser and works in curl: bucket CORS
A presigned PUT from a page is a cross-origin request. Without CORS rules on the bucket it fails with an error that never says CORS, and the signature gets blamed.
r2 · cors · uploads · presigned
Serving R2 objects publicly: custom domains, r2.dev and cache headers
r2.dev is rate-limited and not for production. A custom domain puts Cloudflare's cache in front of the bucket, but only if you wrote Cache-Control at upload time.
r2 · cloudflare · cdn · caching
Presigned PUT or multipart: picking an upload strategy for R2
A single presigned PUT is right up to about 100 MB and restarts from zero when it fails. Above that, multipart is not an optimisation, it is the only thing that works.
r2 · s3 · uploads · presigned
Zero egress fees, and the workloads where R2 actually beats S3
Egress is the line that surprises people on an S3 bill. R2 charges nothing for it and charges for operations instead: here is the arithmetic for deciding, including where R2 loses.
r2 · s3 · cloudflare · cost