功能描述
PUT Bucket acl 接口用来写入存储桶的访问控制列表(ACL),您可以通过请求头
x-cos-acl
和 x-cos-grant-*
传入 ACL 信息,或者通过请求体以 XML 格式传入 ACL 信息。注意
通过请求头设置 ACL 和通过请求体设置 ACL 两种方式只能选择其中一种。
PUT Bucket acl 是一个覆盖操作,传入新的 ACL 将覆盖原有 ACL。
支持对腾讯云 CAM 主账号、匿名用户、子用户授予权限,如需授予用户组权限请参见 为用户组添加/解除策略。有关 ACL 的详细说明,请参见 ACL 概述。
该 API 的请求者需要对存储桶有写入 ACL 权限。
授权说明
请求
请求示例
示例一
PUT /?acl HTTP/1.1Host: <BucketName-APPID>.cos.<Region>.myqcloud.comDate: GMT DateContent-Length: 0Authorization: Auth String
示例二
PUT /?acl HTTP/1.1Host: <BucketName-APPID>.cos.<Region>.myqcloud.comDate: GMT DateContent-Type: application/xmlContent-Length: Content LengthContent-MD5: MD5Authorization: Auth String[Request Body]
说明
Host: <BucketName-APPID>.cos.<Region>.myqcloud.com,其中 <BucketName-APPID> 为带 APPID 后缀的存储桶名字,例如 examplebucket-1250000000,详情请参见 存储桶概览 > 基本信息 和 存储桶概述 > 存储桶命名规范 文档;<Region> 为 COS 的可用地域,详情请参见 地域和访问域名 文档。
Authorization: Auth String(详情请参见 请求签名 文档)。
请求参数
此接口无请求参数。
请求头
名称 | 描述 | 类型 | 是否必选 |
x-cos-acl | Enum | 否 | |
x-cos-grant-read | 赋予被授权者读取存储桶的权限。若被授权者为主账号,格式为 id="[OwnerUin]",如 id="100000000001";若被授权者为子账号,格式为 id="[OwnerUin/GrantsUin]",如 id="100000000001/100000000011"。可使用半角逗号(,)分隔多组被授权者,如 id="100000000001",id="100000000002" | string | 否 |
x-cos-grant-write | 赋予被授权者写入存储桶的权限。若被授权者为主账号,格式为 id="[OwnerUin]",如 id="100000000001";若被授权者为子账号,格式为 id="[OwnerUin/GrantsUin]",如 id="100000000001/100000000011"。可使用半角逗号(,)分隔多组被授权者,如 id="100000000001",id="100000000002" | string | 否 |
x-cos-grant-read-acp | 赋予被授权者读取存储桶的访问控制列表(ACL)的权限。若被授权者为主账号,格式为 id="[OwnerUin]",如 id="100000000001";若被授权者为子账号,格式为 id="[OwnerUin/GrantsUin]",如 id="100000000001/100000000011"。可使用半角逗号(,)分隔多组被授权者,如 id="100000000001",id="100000000002" | string | 否 |
x-cos-grant-write-acp | 赋予被授权者写入存储桶的访问控制列表(ACL)的权限。若被授权者为主账号,格式为 id="[OwnerUin]",如 id="100000000001";若被授权者为子账号,格式为 id="[OwnerUin/GrantsUin]",如 id="100000000001/100000000011"。可使用半角逗号(,)分隔多组被授权者,如 id="100000000001",id="100000000002" | string | 否 |
x-cos-grant-full-control | 赋予被授权者操作存储桶的所有权限。若被授权者为主账号,格式为 id="[OwnerUin]",如 id="100000000001";若被授权者为子账号,格式为 id="[OwnerUin/GrantsUin]",如 id="100000000001/100000000011"。可使用半角逗号(,)分隔多组被授权者,如 id="100000000001",id="100000000002" | string | 否 |
请求体
提交 application/xml 请求数据,包含存储桶所有者和完整的授权信息。
<AccessControlPolicy><Owner><ID>string</ID></Owner><AccessControlList><Grant><Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="Group"><URI>string</URI></Grantee><Permission>Enum</Permission></Grant><Grant><Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="CanonicalUser"><ID>string</ID></Grantee><Permission>Enum</Permission></Grant></AccessControlList></AccessControlPolicy>
具体的节点描述如下:
节点名称(关键字) | 父节点 | 描述 | 类型 | 是否必选 |
AccessControlPolicy | 无 | 包含 PUT Bucket acl 操作的所有请求信息 | Container | 是 |
Container 节点 AccessControlPolicy 的内容:
节点名称(关键字) | 父节点 | 描述 | 类型 | 是否必选 |
Owner | AccessControlPolicy | 存储桶持有者信息 | Container | 是 |
AccessControlList | AccessControlPolicy | 被授权者信息与权限信息 | Container | 是 |
Container 节点 Owner 的内容:
节点名称(关键字) | 父节点 | 描述 | 类型 | 是否必选 |
ID | AccessControlPolicy.Owner | 存储桶持有者的完整 ID,格式为 qcs::cam::uin/[OwnerUin]:uin/[OwnerUin] ,如 qcs::cam::uin/100000000001:uin/100000000001 | string | 是 |
Container 节点 AccessControlList 的内容:
节点名称(关键字) | 父节点 | 描述 | 类型 | 是否必选 |
Grant | AccessControlPolicy.AccessControlList | 单个授权信息,一个 AccessControlList 最多只能拥有100条 Grant | Container | 是 |
Container 节点 AccessControlList.Grant 的内容:
节点名称(关键字) | 父节点 | 描述 | 类型 | 是否必选 |
Grantee | AccessControlPolicy.AccessControlList.Grant | 被授权者信息, xsi:type 可指定为 Group 或 CanonicalUser,当指定为 Group 时子节点包括且仅允许包括 URI,当指定为 CanonicalUser 时子节点包括且仅允许包括 ID | Container | 是 |
Permission | AccessControlPolicy.AccessControlList.Grant | Enum | 是 |
Container 节点 AccessControlList.Grant.Grantee 的内容:
节点名称(关键字) | 父节点 | 描述 | 类型 | 是否必选 |
URI | AccessControlPolicy.AccessControlList.Grant.Grantee | 预设用户组。请参见 ACL 概述 文档中预设用户组部分,如 http://cam.qcloud.com/groups/global/AllUsers 或 http://cam.qcloud.com/groups/global/AuthenticatedUsers | string | 当 Grantee 的 xsi:type 指定为 Group 时必选 |
ID | AccessControlPolicy.AccessControlList.Grant.Grantee | 被授权者的完整 ID,格式为 qcs::cam::uin/[OwnerUin]:uin/[OwnerUin] ,如 qcs::cam::uin/100000000001:uin/100000000001 | string | 当 Grantee 的 xsi:type 指定为 CanonicalUser 时必选 |
响应
响应头
响应体
此接口响应体为空。
错误码
实际案例
案例一:通过请求头设置 ACL
请求
PUT /?acl HTTP/1.1Host: examplebucket-1250000000.cos.ap-beijing.myqcloud.comDate: Mon, 17 Jun 2019 08:30:12 GMTx-cos-acl: public-readx-cos-grant-write: id="100000000002"x-cos-grant-read-acp: id="100000000002"Content-Length: 0Authorization: q-sign-algorithm=sha1&q-ak=************************************&q-sign-time=1560760212;1560767412&q-key-time=1560760212;1560767412&q-header-list=content-length;date;host;x-cos-acl;x-cos-grant-read-acp;x-cos-grant-write&q-url-param-list=acl&q-signature=****************************************Connection: close
响应
HTTP/1.1 200 OKContent-Length: 0Connection: closeDate: Mon, 17 Jun 2019 08:30:13 GMTServer: tencent-cosx-cos-request-id: NWQwNzRmOTRfODhjMjJhMDlfMWRlYl81Mzc0****
案例二:通过请求体设置 ACL
请求
PUT /?acl HTTP/1.1Host: examplebucket-1250000000.cos.ap-beijing.myqcloud.comDate: Mon, 17 Jun 2019 08:30:13 GMTContent-Type: application/xmlContent-Length: 812Content-MD5: 1qS+8SqnivarcO6Z11R0nw==Authorization: q-sign-algorithm=sha1&q-ak=************************************&q-sign-time=1560760213;1560767413&q-key-time=1560760213;1560767413&q-header-list=content-length;content-md5;content-type;date;host&q-url-param-list=acl&q-signature=****************************************Connection: close<AccessControlPolicy><Owner><ID>qcs::cam::uin/100000000001:uin/100000000001</ID></Owner><AccessControlList><Grant><Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="Group"><URI>http://cam.qcloud.com/groups/global/AllUsers</URI></Grantee><Permission>READ</Permission></Grant><Grant><Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="CanonicalUser"><ID>qcs::cam::uin/100000000002:uin/100000000002</ID></Grantee><Permission>WRITE</Permission></Grant><Grant><Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="CanonicalUser"><ID>qcs::cam::uin/100000000002:uin/100000000002</ID></Grantee><Permission>READ_ACP</Permission></Grant></AccessControlList></AccessControlPolicy>
响应
HTTP/1.1 200 OKContent-Length: 0Connection: closeDate: Mon, 17 Jun 2019 08:30:13 GMTServer: tencent-cosx-cos-request-id: NWQwNzRmOTVfMzBjMDJhMDlfOTM3MF8yNzdj****