设置对象 ACL
功能说明
设置文件的 ACL 信息,通过 XCosACL,XCosGrantFullControl,XCosGrantRead,XCosGrantWrite传入 header 的方式来设置 ACL,或者通过 ACLXML 传入 body 来设置 ACL,两种方式只能选择一种,否则会返回冲突。
注意:当前访问策略条目限制为1000条,如果您不需要进行对象 ACL 控制,请不要设置,默认继承 Bucket 权限。
方法原型
func (s *ObjectService) PutACL(ctx context.Context, key string, opt *ObjectPutACLOptions) (*Response, error)
请求示例
通过 Header 设置 Object ACL
opt := &cos.ObjectPutACLOptions{
Header: &cos.ACLHeaderOptions{
XCosACL: "private",
},
}
key := "test/hello.txt"
resp, err := client.Object.PutACL(context.Background(), key, opt)
通过 Body 设置 Object ACL
opt = &cos.ObjectPutACLOptions{
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.Object.PutACL(context.Background(), key, opt)
参数说明
type ACLHeaderOptions struct {
XCosACL string
XCosGrantRead string
XCosGrantWrite string
XCosGrantFullControl string
}
参数名称 | 参数描述 | 类型 | 必填 |
---|---|---|---|
key | 对象键(Key)是对象在存储桶中的唯一标识。例如,在对象的访问域名 bucket1-1250000000.cos.ap-guangzhou.myqcloud.com/doc1/pic1.jpg 中,对象键为 doc1/pic1.jpg | 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 object acl 返回结果说明 | struct | 否 |