PUT Bucket acl

最后更新时间:2020-06-23 17:47:38

    功能描述

    PUT Bucket acl 接口用来写入存储桶的访问控制列表(ACL),您可以通过请求头 x-cos-aclx-cos-grant-* 传入 ACL 信息,或者通过请求体以 XML 格式传入 ACL 信息。

    注意:

    • 通过请求头设置 ACL 和通过请求体设置 ACL 两种方式只能选择其中一种。
    • PUT Bucket acl 是一个覆盖操作,传入新的 ACL 将覆盖原有 ACL。
    • 该 API 的请求者需要对存储桶有写入 ACL 权限。

    请求

    请求示例

    示例一

    PUT /?acl HTTP/1.1
    Host: <BucketName-APPID>.cos.<Region>.myqcloud.com
    Date: GMT Date
    Content-Length: 0
    Authorization: Auth String

    示例二

    PUT /?acl HTTP/1.1
    Host: <BucketName-APPID>.cos.<Region>.myqcloud.com
    Date: GMT Date
    Content-Type: application/xml
    Content-Length: Content Length
    Content-MD5: MD5
    Authorization: Auth String
    
    [Request Body]

    说明:

    Authorization: Auth String (详情请参见 请求签名 文档)。

    请求参数

    此接口无请求参数。

    请求头

    此接口除使用公共请求头部外,还支持以下请求头部,了解公共请求头部详情请参见 公共请求头部 文档。

    名称 描述 类型 是否必选
    x-cos-acl 定义存储桶的访问控制列表(ACL)属性。枚举值请参见 ACL 概述 文档中存储桶的预设 ACL 部分,如 private, public-read 等,默认为 private Enum
    x-cos-grant-read 赋予被授权者读取存储桶的权限,格式为 id="[OwnerUin]",如 id="100000000001",可使用半角逗号(,)分隔多组被授权者,如 id="100000000001",id="100000000002" string
    x-cos-grant-write 赋予被授权者写入存储桶的权限,格式为 id="[OwnerUin]",如 id="100000000001",可使用半角逗号(,)分隔多组被授权者,如 id="100000000001",id="100000000002" string
    x-cos-grant-read-acp 赋予被授权者读取存储桶的访问控制列表(ACL)的权限,格式为 id="[OwnerUin]",如 id="100000000001",可使用半角逗号(,)分隔多组被授权者,如 id="100000000001",id="100000000002" string
    x-cos-grant-write-acp 赋予被授权者写入存储桶的访问控制列表(ACL)的权限,格式为 id="[OwnerUin]",如 id="100000000001",可使用半角逗号(,)分隔多组被授权者,如 id="100000000001",id="100000000002" string
    x-cos-grant-full-control 赋予被授权者操作存储桶的所有权限,格式为 id="[OwnerUin]",如 id="100000000001",可使用半角逗号(,)分隔多组被授权者,如 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 授予的权限信息。枚举值请参见 ACL 概述 文档中存储桶的操作部分,如 WRITE,FULL_CONTROL 等 Enum

    Container 节点 AccessControlList.Grant.Grantee 的内容:

    节点名称(关键字) 父节点 描述 类型 是否必选
    URI AccessControlPolicy.AccessControlList.Grant.Grantee 预设用户组。请参见 ACL 概述 文档中预设用户组部分,如 http://cam.qcloud.com/groups/global/AllUsershttp://cam.qcloud.com/groups/global/AuthenticatedUsers string Granteexsi:type 指定为 Group 时必选
    ID AccessControlPolicy.AccessControlList.Grant.Grantee 被授权者的完整 ID,格式为 qcs::cam::uin/[OwnerUin]:uin/[OwnerUin],如 qcs::cam::uin/100000000001:uin/100000000001 string Granteexsi:type 指定为 CanonicalUser 时必选

    响应

    响应头

    此接口仅返回公共响应头部,详情请参见 公共响应头部 文档。

    响应体

    此接口响应体为空。

    错误码

    此接口遵循统一的错误响应和错误码,详情请参见 错误码 文档。

    实际案例

    案例一:通过请求头设置 ACL

    请求

    PUT /?acl HTTP/1.1
    Host: examplebucket-1250000000.cos.ap-beijing.myqcloud.com
    Date: Mon, 17 Jun 2019 08:30:12 GMT
    x-cos-acl: public-read
    x-cos-grant-write: id="100000000002"
    x-cos-grant-read-acp: id="100000000002"
    Content-Length: 0
    Authorization: q-sign-algorithm=sha1&q-ak=AKID8A0fBVtYFrNm02oY1g1JQQF0c3JO****&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=5b10c6ea4e6c9630c085e1f85476c76d8c4e****
    Connection: close

    响应

    HTTP/1.1 200 OK
    Content-Length: 0
    Connection: close
    Date: Mon, 17 Jun 2019 08:30:13 GMT
    Server: tencent-cos
    x-cos-request-id: NWQwNzRmOTRfODhjMjJhMDlfMWRlYl81Mzc0****

    案例二:通过请求体设置 ACL

    请求

    PUT /?acl HTTP/1.1
    Host: examplebucket-1250000000.cos.ap-beijing.myqcloud.com
    Date: Mon, 17 Jun 2019 08:30:13 GMT
    Content-Type: application/xml
    Content-Length: 812
    Content-MD5: 1qS+8SqnivarcO6Z11R0nw==
    Authorization: q-sign-algorithm=sha1&q-ak=AKID8A0fBVtYFrNm02oY1g1JQQF0c3JO****&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=70f96b91823f3715905df125d96fe447554e****
    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 OK
    Content-Length: 0
    Connection: close
    Date: Mon, 17 Jun 2019 08:30:13 GMT
    Server: tencent-cos
    x-cos-request-id: NWQwNzRmOTVfMzBjMDJhMDlfOTM3MF8yNzdj****

    Was this page helpful?

    本页内容是否解决了您的问题?

    • 完全没帮助
    • 文档较差
    • 文档一般
    • 文档不错
    • 文档很好
    反馈
    帮助