设置存储桶 ACL

功能说明

设置 Bucket 的 ACL 信息, 通过 XCosACL,XCosGrantFullControl,XCosGrantRead,XCosGrantWrite传入 header 的方式来设置 ACL,或者通过 ACLXML 传入 body 来设置 ACL,两种方式只能选择一种,否则会返回冲突。

方法原型

  1. func (s *BucketService) PutACL(ctx context.Context, opt *BucketPutACLOptions) (*Response, error)

请求示例

通过 header 设置 Bucket ACL。

  1. opt := &cos.BucketPutACLOptions{
  2. Header: &cos.ACLHeaderOptions{
  3. //private,public-read,public-read-write
  4. XCosACL: "private",
  5. },
  6. }
  7. resp, err := client.Bucket.PutACL(context.Background(), opt)

通过 body 设置 Bucket ACL。

  1. opt = &cos.BucketPutACLOptions{
  2. Body: &cos.ACLXml{
  3. Owner: &cos.Owner{
  4. ID: "qcs::cam::uin/100000760461:uin/100000760461",
  5. },
  6. AccessControlList: []cos.ACLGrant{
  7. {
  8. Grantee: &cos.ACLGrantee{
  9. Type: "RootAccount",
  10. ID:"qcs::cam::uin/100000760461:uin/100000760461",
  11. },
  12. Permission: "FULL_CONTROL",
  13. },
  14. },
  15. },
  16. }
  17. resp, err := client.Bucket.PutACL(context.Background(), opt)

参数说明

  1. type ACLHeaderOptions struct {
  2. XCosACL string
  3. XCosGrantRead string
  4. XCosGrantWrite string
  5. XCosGrantFullControl string
  6. }
参数名称参数描述类型必填
XCosACL设置 Bucket 的 ACL,如 private,public-read,public-read-writestring
XCosGrantFullControl赋予指定账户对 Bucket 的读写权限。格式为id=" ",id=" "当需要给子账户授权时,格式为id="qcs::cam::uin/{OwnerUin}:uin/{SubUin}"当需要给根账户授权时,格式为id="qcs::cam::uin/{OwnerUin}:uin/{OwnerUin}"例如id="qcs::cam::uin/123:uin/456",id="qcs::cam::uin/123:uin/123"string
XCosGrantRead赋予指定账户对 Bucket 的读权限。格式为id=" ",id=" "当需要给子账户授权时,格式为id="qcs::cam::uin/{OwnerUin}:uin/{SubUin}"当需要给根账户授权时,格式为id="qcs::cam::uin/{OwnerUin}:uin/{OwnerUin}"例如id="qcs::cam::uin/123:uin/456",id="qcs::cam::uin/123:uin/123"string
XCosGrantWrite赋予指定账户对 Bucket 的写权限。格式为id=" ",id=" "当需要给子账户授权时,格式为id="qcs::cam::uin/{OwnerUin}:uin/{SubUin}"当需要给根账户授权时,格式为id="qcs::cam::uin/{OwnerUin}:uin/{OwnerUin}"例如id="qcs::cam::uin/123:uin/456",id="qcs::cam::uin/123:uin/123"string
ACLXML赋予指定账户对 Bucket 的访问权限,具体格式见 get bucket acl 返回结果说明struct