功能描述
PUT Bucket policy 请求可以向 Bucket 写入权限策略。当存储桶已存在权限策略时,该请求上传的策略将覆盖原有的权限策略。如果需要增量写入策略,可以先调用 GET Bucket Policy 获取之前的策略,在之前的策略上再添加新策略,然后再调用 PUT Bucket Policy。
注意:
每个主账号,创建的存储桶 ACL 规则数量最多为1000条。
授权说明
请求
请求示例
PUT /?policy HTTP/1.1Host:<BucketName-APPID>.cos.<Region>.myqcloud.comDate: dateContent-Type:application/jsonContent-MD5:MD5Authorization: Auth String
说明:
Host: <BucketName-APPID>.cos.<Region>.myqcloud.com,其中 <BucketName-APPID> 为带 APPID 后缀的存储桶名字,例如 examplebucket-1250000000,可参阅 存储桶概览 > 基本信息 和 存储桶概述 > 存储桶命名规范 文档;<Region> 为 COS 的可用地域,可参阅 地域和访问域名 文档。
Authorization: Auth String(详情请参见 请求签名 文档)。
请求头
请求体
下面的示例表示给主账号100000000001下的子账号100000000011授权,以允许访问存储桶名为 examplebucket-1250000000 中的对象列表。关于访问策略中的元素介绍,请参见 访问策略语言概述,以及授权策略示例请参见 COS API 授权策略使用指引。
{"Statement": [{"Principal": {"qcs": ["qcs::cam::uin/100000000001:uin/100000000011"]},"Effect": "allow","Action": ["name/cos:GetBucket"],"Resource": ["qcs::cos:ap-guangzhou:uid/1250000000:examplebucket-1250000000/*"]}],"version": "2.0"}
响应
响应头
响应体
该请求的响应体为空。
错误码
实际案例
请求
PUT /?policy HTTP/1.1Host: examplebucket-1250000000.cos.ap-guangzhou.myqcloud.comAuthorization:q-sign-algorithm=sha1&q-ak=AKIDWtTCBYjM5OwLB9CAwA1Qb2ThTSUj****&q-sign-time=1484813288;32557709288&q-key-time=1484813288;32557709288&q-header-list=host&q-url-param-list=policy&q-signature=05f7fc936369f910a94a0c815e1f1752f034****Content-Type: application/jsonContent-Length: 233{"Statement": [{"Principal": {"qcs": ["qcs::cam::uin/100000000001:uin/100000000001"]},"Effect": "allow","Action": ["name/cos:GetBucket"],"Resource": ["qcs::cos:ap-guangzhou:uid/1250000000:examplebucket-1250000000/*"]}],"version": "2.0"}
响应
HTTP/1.1 204 No ContentContent-Type: application/xmlContent-Length: 0Connection: keep-aliveDate: Thu Jan 19 16:19:22 2017Server: tencent-cosx-cos-request-id: NTg4MDc2OGFfNDUyMDRlXzc3NTlf****