You need to enable JavaScript to run this app.
导航
PutObjectACL
最近更新时间:2024.11.14 16:39:30首次发布时间:2021.10.13 16:14:08

功能描述

此接口用于设置对象的访问控制权限。用户可以在上传对象的时候设置对象的 ACL,也可以上传对象后通过此接口修改 ACL。默认设置当前版本的 ACL,可以通过versionId来设置指定版本对象的 ACL。

背景信息

调用 PutObjectACL 接口设置对象 ACL 时,您可以通过以下两种方式指定对象 ACL:

  • 通过 x-tos-acl 指定对象 ACL。
  • 通过请求体指定对象 ACL。

以上两种方式只能选择其中一种,不支持同时使用。

请求消息样式

PUT /ObjectName?acl HTTP/1.1
Host: bucketname.tos-cn-beijing.volces.com
Date: GMT Date
Authorization: authorization string
{   
    "Owner": { "ID": "test-cid" },
    "Grants": [{
        "Grantee": {
          "Type": "CanonicalUser",
          "ID": "test-cid"
        },
        "Permission": "FULL_CONTROL"
      }],
   "IsDefault":false
}

请求参数和消息头

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

名称

位置

参数类型

是否必选

示例值

说明

acl

Query

String

-\

代表 PutObjectACL 请求的特殊标识。

x-tos-acl

Header

String

private

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

  • private:私有的。
  • public-read:公共读。
  • public-read-write:公共读写。
  • authenticated-read:认证用户读。
  • bucket-owner-read:桶所有者读。
  • bucket-owner-full-control:桶所有者完全权限。
  • bucket-owner-entrusted:受桶策略控制,桶所有者完全权限。
  • default:继承桶 ACL,即对象的 ACL 策略和桶 ACL 策略保持一致。

versionId

Query

String

57AF1A32CECB56721267

对象的版本号。标识更改指定版本的对象 ACL。

请求元素

名称

参数类型

是否必选

示例值

说明

Grants

Array

不涉及

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

Grantee

Object

不涉及

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

Type

String

CanonicalUser

用户类型。父节点为 Grantee。

Canned

String

AuthenticatedUsers

当 Type 为 Group 时,使用该字段。取值说明如下:

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

父节点为 Grantee。

ID

String

20012****

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

Permission

String

FULL_CONTROL

授权类型。父节点为 Grants。

Owner

Object

不涉及

对象所有者。

ID

String

20012****

账号 ID。父节点为 Owner。

IsDefault

Bool

false

是否设置对象的 ACL 为继承桶 ACL,即对象的 ACL 策略和桶 ACL 策略保持一致。

  • true:设置对象的 ACL 为继承桶 ACL。
  • false:不设置对象的 ACL 为继承桶 ACL,则对象 ACL 默认为私有。

默认为 false

说明

OwnerBucketAclDelivered 参数必须一起设置,且不支持同时 设置 Grantee 参数。

响应消息头

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

响应元素

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

请求示例 1

使用 x-tos-acl 头域指定对象 ACL。

PUT /ObjectName?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

请求示例 2

使用请求体指定对象 ACL。

PUT /ObjectName?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"
        }
    ]
}

请求示例 3

使用 IsDefault 设置对象的 ACL 为继承桶 ACL。

PUT /ObjectName?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": "214748****"
    },
    "IsDefault": true
}

响应示例

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