从申请方付款桶中下载对象 - Amazon Simple Storage Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

因为会向申请方收取从申请方付款存储桶下载数据的费用,因此请求必须包含特殊参数 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 及其值。有关更多信息,请参阅构建 CanonicalizedAmzHeaders 元素

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

    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]

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

Amazon S3 可以为尝试从申请方付款存储桶获取对象的请求返回 Access Denied 错误。有关更多信息,请参阅《Amazon Simple Storage Service API 参考》中的错误响应

要使用 Amazon CLI 从申请方付款存储桶下载对象,请指定 --request-payer requester 包含在您的 get-object 请求中。有关更多信息,请参阅《Amazon CLI 参考》中的 get-object