Requester’s Pays is an Amazon S3 feature that allows the requester (the user or application) to bear the costs associated with data transfer when accessing objects from a bucket. By default, the bucket owner incurs the costs of data retrieval and transfer, but with Requester’s Pays enabled, the requester is responsible for these costs.
How Requester’s Pays Works:
When Requester’s Pays is enabled for an S3 bucket:
- The bucket owner does not incur the costs of data retrieval, but instead, the requester (the person or application accessing the objects) is billed for the data transfer and retrieval costs.
- This is helpful when the data is publicly available, but you want to ensure that the person requesting the data bears the cost for downloading large amounts of data.
Key Points:
- Requester’s Pays is applicable to:
- GET and LIST requests to retrieve data from the S3 bucket.
- Data transferred out of S3 (e.g., from S3 to the internet or to another region) is also billed to the requester.
- Bucket Owner Responsibility:
- The bucket owner remains responsible for the costs associated with storing objects in the bucket, including storage, PUT requests, and data uploads. They do not pay for the requests made by other users or applications to download objects if Requester Pays is enabled.
- How the Requester Pays Bucket Works:
- When Requester’s Pays is enabled on a bucket, the requester must explicitly acknowledge that they are willing to pay the cost. This is done via the S3 API, CLI, or SDK by setting the
x-amz-request-payer
header to “requester”.
- When Requester’s Pays is enabled on a bucket, the requester must explicitly acknowledge that they are willing to pay the cost. This is done via the S3 API, CLI, or SDK by setting the