Limits
Feature | Limit |
---|---|
Data storage per bucket | Unlimited |
Maximum number of buckets per account | 1,000,000 |
Maximum rate of bucket management operations per bucket1 | 50 per second |
Number of custom domains per bucket | 50 |
Object key length | 1,024 bytes |
Object metadata size | 8,192 bytes |
Object size | 5 TiB per object2 |
Maximum upload size4 | 5 GiB3 |
Maximum upload parts | 10,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).
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 a429 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.