Limits
Managed public bucket access through an r2.dev
subdomain is not intended for production usage and has a rate limit applied to it. If you exceed the rate limit, requests through your r2.dev
subdomain will be temporarily throttled and you will receive a 429 Too Many Requests
response. For production use cases, consider linking a custom domain to your bucket.
Feature | Limit |
---|---|
Bucket | 1000 buckets per account |
Data storage per bucket | Unlimited |
Object key length | 1,024 bytes |
Object metadata size | 8,192 bytes |
Object size | 5 TiB per object1 |
Maximum upload size3 | 5 GiB2 |
Maximum upload parts | 10,000 |
Maximum custom domains per bucket | 50 |
1 The object size limit is 5 GiB less than 5 TiB, so 4.995 TiB.
2 The max upload size is 5 MiB less than 5 GiB, so 4.995 GiB.
3 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.
Review the Examples on how to use the SDKs.
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).
Currently Cloudflare’s Tiered Cache feature is not compatible with responses from R2. These responses will act as if Tiered Cache is not configured.