Skip to content

Limits

FeatureLimit
Data storage per bucketUnlimited
Maximum number of buckets per account1,000,000
Maximum rate of bucket management operations per bucket150 per second
Number of custom domains per bucket50
Object key length1,024 bytes
Object metadata size8,192 bytes
Object size5 TiB per object2
Maximum upload size45 GiB3
Maximum upload parts10,000

1 Bucket management operations include creating, deleting, listing, and configuring buckets.
2 The object size limit is 5 GiB less than 5 TiB, so 4.995 TiB.
3 The max upload size is 5 MiB less than 5 GiB, so 4.995 GiB.
4 Max upload size applies to uploading a file via one request, uploading a part of a multipart upload, or copying into a part of a multipart upload. If you have a Worker, its inbound request size is constrained by Workers request limits. The max upload size limit does not apply to subrequests.


Limits specified in MiB (mebibyte), GiB (gibibyte), or TiB (tebibyte) are storage units of measurement based on base-2. 1 GiB (gibibyte) is equivalent to 230 bytes (or 10243 bytes). This is distinct from 1 GB (gigabyte), which is 109 bytes (or 10003 bytes).

Rate limiting on managed public buckets through r2.dev

Managed public bucket access through an r2.dev subdomain is not intended for production usage and has a variable rate limit applied to it. The r2.dev endpoint for your bucket is designed to enable testing.

  • If you exceed the rate limit (hundreds of requests/second), requests to your r2.dev endpoint will be temporarily throttled and you will receive a 429 Too Many Requests response.
  • Bandwidth (throughput) may also be throttled when using the r2.dev endpoint.

For production use cases, connect a custom domain to your bucket. Custom domains allow you to serve content from a domain you control (for example, assets.example.com), configure fine-grained caching, set up redirect and rewrite rules, mutate content via Cloudflare Workers, and get detailed URL-level analytics for content served from your R2 bucket.