浏览 194
分享
设置存储桶 ACL
功能说明
设置 Bucket 的 ACL 信息, 通过 XCosACL,XCosGrantFullControl,XCosGrantRead,XCosGrantWrite传入 header 的方式来设置 ACL,或者通过 ACLXML 传入 body 来设置 ACL,两种方式只能选择一种,否则会返回冲突。
方法原型
func (s *BucketService) PutACL(ctx context.Context, opt *BucketPutACLOptions) (*Response, error)
请求示例
通过 header 设置 Bucket ACL。
opt := &cos.BucketPutACLOptions{
Header: &cos.ACLHeaderOptions{
//private,public-read,public-read-write
XCosACL: "private",
},
}
resp, err := client.Bucket.PutACL(context.Background(), opt)
通过 body 设置 Bucket ACL。
opt = &cos.BucketPutACLOptions{
Body: &cos.ACLXml{
Owner: &cos.Owner{
ID: "qcs::cam::uin/100000760461:uin/100000760461",
},
AccessControlList: []cos.ACLGrant{
{
Grantee: &cos.ACLGrantee{
Type: "RootAccount",
ID:"qcs::cam::uin/100000760461:uin/100000760461",
},
Permission: "FULL_CONTROL",
},
},
},
}
resp, err := client.Bucket.PutACL(context.Background(), opt)
参数说明
type ACLHeaderOptions struct {
XCosACL string
XCosGrantRead string
XCosGrantWrite string
XCosGrantFullControl string
}
参数名称 | 参数描述 | 类型 | 必填 |
---|---|---|---|
XCosACL | 设置 Bucket 的 ACL,如 private,public-read,public-read-write | string | 否 |
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 | 否 |
评论列表