Skip to content

Limits

Size, count and request limits on the hosted S3 endpoint.

LimitValueAmazon S3What happens past it
Single PutObject5 GiB5 GiB400 EntityTooLarge. Use a multipart upload.
Multipart part size5 MiB to 5 GiB (the last part can be smaller)Same400 EntityTooSmall or 400 EntityTooLarge
Parts per upload3,00010,000400 InvalidArgument on the part that crosses the limit
Largest objectAbout 14.6 TiB (3,000 × 5 GiB)50 TiB—
Object key length958 bytes1,024 bytesKeys from 959 to 1,024 bytes fail with 500 InternalError
Keys per ListObjects page1,0001,000400 InvalidArgument for max-keys above 1,000
Keys per DeleteObjects request1,0001,000400 MalformedXML
Clock skewUnder 15 minutes15 minutes401
Content-LengthRequired on uploadsRequired411 MissingContentLength

Free trial accounts have a storage allowance. An upload that would take you past it is refused with 400 EntityTooLarge before any data is sent. The console shows your usage.

Choosing a part size

Because of the 3,000-part limit, your part size sets your largest file:

Part sizeLargest file
8 MiB (AWS CLI and boto3 default)About 23 GiB
64 MiBAbout 187 GiB
512 MiBAbout 1.5 TiB

rclone and DuckDB pick a part size for you when told the limit: max_upload_parts=3000 in the rclone quickstart, and s3_uploader_max_parts_per_file = 3000 in the DuckDB quickstart.

What isn't limited

Objects stay until you delete them. Shelby has no lifecycle rules or automatic expiry.