Skip to content
Calcrivo

S3 PUT Request Cost Calculator

Cost S3 upload requests including the extra PUTs that multipart uploads generate for every part of every object.

Inputs

objects
MB
MB

S3 requires parts of at least 5 MB, except the final part.

MB
USD per 1,000 requests

Monthly Request Cost

$50.00

Billable Requests

10,000,000

Requests per Object

5

Extra Cost vs a Single PUT

$40.00

Upload Path

Multipart — 3 part uploads plus create and complete

Step by step

  1. Values used

    Objects uploaded per month = 2,000,000 objects; Average object size = 40 MB; Multipart part size = 16 MB; Size at which the client switches to multipart = 16 MB; PUT, COPY, POST and LIST price = 0.0050 USD per 1,000 requests

  2. S3 PUT Request Cost

    requests per object = ceil(size ÷ part size) + 2 when multipart is used, otherwise 1; cost = requests ÷ 1000 x price per 1,000.

  3. Monthly Request Cost

    = 50.00

  4. Billable Requests

    = 10,000,000

  5. Requests per Object

    = 5

  6. Extra Cost vs a Single PUT

    = 40.00

  7. Upload Path

    = Multipart — 3 part uploads plus create and complete

How it works

A multipart upload is not one request: every part is a separate PUT, and the create and complete calls are billed as well, so a 40 MB object at a 16 MB part size costs five requests rather than one. Choosing a larger part size cuts request count but raises the amount re-sent when a part fails. The per-1,000 rate above is a user-supplied list price to confirm on the AWS S3 pricing page for your region. Ingest pipelines that write millions of small objects or use an aggressively small part size can spend more on requests than on storage, and the fix is a part-size or batching change rather than a storage-class change.

Formula

S3 PUT Request Cost

requests per object = ceil(size ÷ part size) + 2 when multipart is used, otherwise 1; cost = requests ÷ 1000 x price per 1,000.

size
Average object size in MB
part size
Multipart part size in MB
+2
CreateMultipartUpload and CompleteMultipartUpload are billed as requests too

Frequently Asked Questions

How is S3 PUT Request Cost calculated?

requests per object = ceil(size ÷ part size) + 2 when multipart is used, otherwise 1; cost = requests ÷ 1000 x price per 1,000. A multipart upload is not one request: every part is a separate PUT, and the create and complete calls are billed as well, so a 40 MB object at a 16 MB part size costs five requests rather than one. Choosing a larger part size cuts request count but raises the amount re-sent when a part fails. The per-1,000 rate above is a user-supplied list price to confirm on the AWS S3 pricing page for your region.

Why does S3 PUT Request Cost matter?

Ingest pipelines that write millions of small objects or use an aggressively small part size can spend more on requests than on storage, and the fix is a part-size or batching change rather than a storage-class change.

What values do I need to enter?

This calculator takes 5 inputs: Objects uploaded per month, Average object size, Multipart part size, Size at which the client switches to multipart, PUT, COPY, POST and LIST price. The pre-filled defaults are a realistic starting point — replace them with figures from your own environment for a result you can act on.

Do failed or abandoned multipart uploads still cost money?

Yes. Parts already uploaded were billed as requests and continue to be billed as storage until the upload is aborted, which is why an AbortIncompleteMultipartUpload lifecycle rule belongs on every bucket.

You might also need