在存储桶上配置申请方付款
您可以将 Amazon S3 存储桶配置为申请方付款存储桶,以便请求者而不是存储桶拥有者支付请求和数据下载费用。
本节提供了演示如何使用控制台和 REST API 在 Amazon S3 存储桶上配置申请方付款的示例。
为 S3 存储桶启用申请方付款
登录到 Amazon Web Services Management Console,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/
。 -
在 Buckets(存储桶)列表中,选择要为其启用申请方付款的存储桶的名称。
-
选择属性。
-
在 Requester pays (申请方付款) 下,选择 Edit (编辑)。
-
选择 Enable (启用),然后选择 Save changes (保存更改)。
Amazon S3 为存储桶启用申请方付款,并显示 Bucket overview(存储桶概述)。在 Requester pays (申请方付款) 下,您将看到 Enabled (已启用)。
只有存储桶拥有者才能将存储桶的 RequestPaymentConfiguration.payer
配置值设置为 BucketOwner
(默认值)或 Requester
。设置 requestPayment
资源是可选的。默认情况下,存储桶不是申请方付款存储桶。
要将申请方付款存储桶恢复为常规存储桶,请使用值 BucketOwner
。通常情况下,在将数据上传到 Amazon S3 存储桶时,您将使用 BucketOwner
,然后将值设置为 Requester
,才能在该存储桶中发布对象。
设置 requestPayment 的步骤
-
使用
PUT
请求在指定存储桶上将Payer
值设置为Requester
。PUT ?requestPayment HTTP/1.1 Host:
[BucketName]
.s3.amazonaws.com Content-Length: 173 Date: Wed, 01 Mar 2009 12:00:00 GMT Authorization: AWS[Signature]
<RequestPaymentConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Payer>Requester</Payer> </RequestPaymentConfiguration>
如果请求成功,Amazon S3 将返回类似于以下内容的请求。
HTTP/1.1 200 OK x-amz-id-2: [id] x-amz-request-id: [request_id] Date: Wed, 01 Mar 2009 12:00:00 GMT Content-Length: 0 Connection: close Server: AmazonS3 x-amz-request-charged:requester
您只能在存储桶级别设置申请方付款。您无法为存储桶中的特定对象设置申请方付款。
您可以随时将存储桶配置为 BucketOwner
或 Requester
。但是,新配置值可能需要几分钟才能生效。
注意
在将存储桶配置为申请方付款之前,分发预签名 URL 的存储桶拥有者应当再三考虑,尤其是在 URL 的生命周期非常长时更应如此。在每次申请方使用预签名 URL(使用存储桶拥有者的凭证)时,会向存储桶拥有者收取费用。