设置 requestPayment 存储桶配置
只有存储桶拥有者才能将存储桶的 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(使用存储桶拥有者的凭证)时,会向存储桶拥有者收取费用。