Downloading objects from Requester Pays buckets - Amazon Simple Storage Service
Services or capabilities described in Amazon Web Services documentation might vary by Region. To see the differences applicable to the China Regions, see Getting Started with Amazon Web Services in China (PDF).

Downloading objects from Requester Pays buckets

Because requesters are charged for downloading data from Requester Pays buckets, the requests must contain a special parameter, x-amz-request-payer, which confirms that the requester knows that they will be charged for the download. To access objects in Requester Pays buckets, requests must include one of the following.

  • For DELETE, GET, HEAD, POST, and PUT requests, include x-amz-request-payer : requester in the header

  • For signed URLs, include x-amz-request-payer=requester in the request

If the request succeeds and the requester is charged, the response includes the header x-amz-request-charged:requester. If x-amz-request-payer is not in the request, Amazon S3 returns a 403 error and charges the bucket owner for the request.

Note

Bucket owners do not need to add x-amz-request-payer to their requests.

Ensure that you have included x-amz-request-payer and its value in your signature calculation. For more information, see Constructing the CanonicalizedAmzHeaders Element.

To download objects from a Requester Pays bucket
  • Use a GET request to download an object from a Requester Pays bucket, as shown in the following request.

    GET / [destinationObject] HTTP/1.1 Host: [BucketName].s3.amazonaws.com x-amz-request-payer : requester Date: Wed, 01 Mar 2009 12:00:00 GMT Authorization: AWS [Signature]

If the GET request succeeds and the requester is charged, the response includes x-amz-request-charged:requester.

Amazon S3 can return an Access Denied error for requests that try to get objects from a Requester Pays bucket. For more information, see Error Responses in the Amazon Simple Storage Service API Reference.

To download objects from a Requester Pays bucket using the Amazon CLI, you specify --request-payer requester as part of your get-object request. For more information, see get-object in the Amazon CLI Reference.