put-bucket-request-payment用于设置某个存储空间(Bucket)的请求者付费模式。
注意事项
阿里云账号默认拥有配置Bucket的请求者付费模式的权限。如果您需要通过RAM用户或者STS的方式进行添加修改,您必须拥有
oss:PutBucketRequestPayment
权限。具体操作,请参见为RAM用户授权自定义的权限策略。如果您在Bucket上启用了请求者付费模式,则不允许匿名访问该Bucket。请求方必须提供身份验证信息,以便OSS能够识别请求方,从而对请求方而非Bucket拥有者收取请求所产生的费用。当请求者是通过扮演阿里云RAM角色来请求数据时,该角色所属的账户将为此请求付费。
如果您在Bucket上启用了请求者付费模式,请求方必须在其请求中包含x-oss-request-payer:requester(在POST、GET和HEAD请求的Header信息中),以表明请求方已知悉请求和数据下载将产生费用。否则,请求方无法通过验证。数据拥有者访问该Bucket时,可以不携带x-oss-request-payer请求头。数据拥有者作为请求者访问该Bucket时,请求产生的费用由数据拥有者(也是请求者)来支付。
命令格式
ossutil api put-bucket-request-payment --bucket value --request-payment-configuration value [flags]
参数 | 类型 | 说明 |
--bucket | string | Bucket的名称。 |
--request-payment-configuration | string | 请求付费配置的容器。 |
put-bucket-request-payment命令对应API接口PutBucketRequestPayment。关于API中的具体参数含义,请参见PutBucketRequestPayment。
--request-payment-configuration
--request-payment-configuration配置选项既支持XML语法也支持JSON语法,当选项值包含file://前缀时,表示从文件中读取配置。
XML语法:
<RequestPaymentConfiguration> <Payer>string</Payer> </RequestPaymentConfiguration>
JSON语法:
{ "Payer": "string" }
关于支持的全局命令行选项,请参见支持的全局命令行选项。
使用示例
以下示例展示了如何为存储空间examplebucket
设置请求者付费模式。
使用XML配置文件,request-payment-configuration.xml内容如下:
<?xml version="1.0" encoding="UTF-8"?> <RequestPaymentConfiguration> <Payer>Requester</Payer> </RequestPaymentConfiguration>
命令示例如下:
ossutil api put-bucket-request-payment --bucket examplebucket --request-payment-configuration file://request-payment-configuration.xml
使用JSON配置文件,request-payment-configuration.json内容如下:
{ "Payer": "Requester" }
命令示例如下:
ossutil api put-bucket-request-payment --bucket examplebucket --request-payment-configuration file://request-payment-configuration.json
使用JSON配置参数,命令示例如下:
ossutil api put-bucket-request-payment --bucket examplebucket --request-payment-configuration "{\"Payer\":\"Requester\"}"