

# 从申请方付款桶中下载对象
从申请方付款桶中下载对象

因为会向申请方收取从申请方付款存储桶下载数据的费用，因此请求必须包含特殊参数 `x-amz-request-payer`，该参数确认申请方了解将向他们收取下载费用。要在申请方付款存储桶中访问对象，请求必须包含以下内容之一。
+ 对于 DELETE、GET、HEAD、POST 和 PUT 请求，在标头中包含 `x-amz-request-payer : requester`
+ 对于已签名的 URL，需在请求中包括 `x-amz-request-payer=requester`

如果请求成功且已向申请方收取费用，则响应将包括标头 `x-amz-request-charged:requester`。如果请求中没有 `x-amz-request-payer`，Amazon S3 将返回 403 错误并向存储桶拥有者收取请求的费用。

**注意**  
存储桶拥有者无需将 `x-amz-request-payer` 添加到他们的请求。  
确保在您的签名计算中包含 `x-amz-request-payer` 及其值。有关更多信息，请参阅《Amazon S3 API 参考》**中的 [Using an Authorization Header](https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-auth-using-authorization-header.html)。

## 使用 REST API


**从申请方付款存储桶下载对象的步骤**
+  使用 `GET` 请求从申请方付款存储桶下载对象，如以下请求所示。

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

如果 GET 请求成功且已向申请方收取费用，则响应将包括 `x-amz-request-charged:requester`。

Amazon S3 可以为尝试从申请方付款存储桶获取对象的请求返回 `Access Denied` 错误。有关更多信息，请参阅《Amazon Simple Storage Service API 参考》**中的[错误响应](https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html)。

## 使用 AWS CLI


要使用 AWS CLI 从申请方付款存储桶下载对象，请指定 `--request-payer requester` 包含在您的 `get-object` 请求中。有关更多信息，请参阅《*AWS CLI 参考*》中的 [get-object](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/get-object.html)。