You need to enable JavaScript to run this app.
导航

PutBucketACL

最近更新时间2023.11.21 10:22:22

首次发布时间2023.04.17 15:20:18

功能描述

此接口用于设置桶的访问控制权限。您必须拥有 WRITE_ACP 权限,才可以设置桶的 ACL。

注意事项

一个桶的 ACL 最多支持 100 条 Grant 。该接口为覆盖语义,新设置的 ACL 会覆盖原有桶的 ACL。
您可以使用以下两种方式设置桶的 ACL :

  • 在请求体中设置 ACL
  • 通过头域指定权限

通过头域指定权限

您可以使用以下两种方式指定权限:

  • 通过 x-tos-acl 请求头指定预制的 ACL。预制 ACL 有预定义的授权者和权限。使用该头域,不能在请求中使用其他的头域指定权限。
    预制 ACL 如下所示:

    预制 ACL

    描述

    private

    私有权限,其他账号没有权限。

    public-read

    公共读权限,所有用户都有读权限。

    public-read-write

    公共读写权限,所有用户都有读写权限。

    authenticated-read

    认证用户读权限,通过鉴权认证的用户有读权限。

  • 使用 x-tos-grant-read、x-tos-grant-read-acp、x-tos-grant-write-acp 和 x-tos-grant-full-control 标头显式指定访问权限。使用这些头域,则不能使用 x-tos-acl 请求头指定预制的 ACL。头域的值为 type=value 的格式, type 有以下两种类型:

    • id: 值为账号 ID。

    • canned: 值为预定义组。
      预定义组说明如下:

      预定义组

      描述

      AllUsers

      所有用户。

      AuthenticatedUsers

      通过鉴权认证的用户。

请求消息样式

PUT /?acl HTTP/1.1
Host: bucketname.tos-cn-beijing.volces.com
Date: GMT Date
Authorization: authorization string
x-tos-acl: ACL
x-tos-grant-full-control: GrantFullControl
x-tos-grant-read: GrantRead
x-tos-grant-read-acp: GrantReadACP
x-tos-grant-write: GrantWrite
x-tos-grant-write-acp: GranteWriteACP

{   
    "Owner": { "ID": "test-cid" },
    "Grants": [{
        "Grantee": {
          "Type": "CanonicalUser",
          "ID": "test-cid"
        },
        "Permission": "FULL_CONTROL"
      }]
}

请求参数和消息头

该请求使用的公共消息头,请参见公共参数

名称

位置

参数类型

是否必选

示例值

说明

acl

Query

String

代表 PutBucketAcl 请求的特殊标识。

x-tos-acl

Header

String

private

桶的访问权限,有效的权限设置包括:

  • private:私有的。
  • public-read:公共读。
  • public-read-write:公共读写。
  • authenticated-read:认证用户读。

x-tos-grant-full-control

Header

String

id: test-cid

授予指定用户所有权限。

x-tos-grant-read

Header

String

id: test-cid

授予指定用户读权限。

x-tos-grant-read-acp

Header

String

id: test-cid

授予指定用户查看 ACL 的权限。

x-tos-grant-write

Header

String

id: test-cid

授予指定用户写权限。

x-tos-grant-write-acp

Header

String

id: test-cid

授予指定用户设置 ACL 的权限。

请求元素

名称

参数类型

说明

Grants

Array

对象的访问控制权限根节点。

Grantee

Object

被授权用户信息。父节点为 Grants。

Type

String

用户类型。父节点为 Grantee。

Canned

String

TypeGroup 时,使用该字段。取值说明如下:

  • AllUsers:所有用户。
  • AuthenticatedUsers:部分通过用户 ID 被授权的用户。

父节点为 Grantee。

ID

String

TypeCanonicalUser 时,使用该字段,代表被授权的用户 ID。父节点为 Grantee。

Permission

String

授权类型。父节点为 Grants。

Owner

Object

对象所有者。

ID

String

账号 ID。父节点为 Owner。

响应消息头

该请求返回公共响应消息头。

响应元素

该请求响应中无消息元素。

请求示例 1

PUT /?acl HTTP/1.1
Host: bucketname.tos-cn-beijing.volces.com
Date: Fri, 30 Jul 2021 13:59:18 GMT
Authorization: authorization string

{
    "Owner": {
        "ID": "AccountID"
    },
    "Grants": [
        {
            "Grantee": {
                "ID": "test-cid",
                "Type": "CanonicalUser"
            },
            "Permission": "FULL_CONTROL"
        }
    ]
}

请求示例 2

PUT /?acl HTTP/1.1
Host: bucketname.tos-cn-beijing.volces.com
Date: Fri, 30 Jul 2021 13:59:18 GMT
Authorization: authorization string
x-tos-acl: public-read

请求示例 3

PUT /?acl HTTP/1.1
Host: bucketname.tos-cn-beijing.volces.com
Date: Fri, 30 Jul 2021 13:59:18 GMT
Authorization: authorization string
x-tos-grant-read: canned=everyone
x-tos-grant-write: canned=AuthenticatedUsers,id=test-cid

响应示例

HTTP/1.1 200 OK
x-tos-id-2: 4fac130beeb50032-a444ed0
x-tos-request-id: 4fac130beeb50032-a444ed0
Date: Fri, 30 Jul 2021 13:59:18 GMT
server: TosServer
Content-Length: 0