从申请方付款桶中下载对象
因为会向申请方收取从申请方付款存储桶下载数据的费用,因此请求必须包含特殊参数 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。
从申请方付款存储桶下载对象的步骤
-
使用
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 参考》中的错误响应。
要使用 AWS CLI 从申请方付款存储桶下载对象,请指定 --request-payer requester
包含在您的 get-object
请求中。有关更多信息,请参阅《AWS CLI 参考》中的 get-object