PutObjectACL
更新时间 2026-04-10 20:11:11
最近更新时间: 2026-04-10 20:11:11
功能说明
PutObjectACL设置对象的访问控制列表(ACL)。
注意事项
该操作需要用户具有WRITE_ACP权限。用户可以通过请求头或者请求体来设置ACL,但不能同时使用。如果使用请求头,也有两种方式,一种是使用x-amz-acl,指定预定义的权限;一种是使用x-amz-grant-read, x-amz-grant-write, x-amz-grant-read-acp, x-amz-grant-write-acp, and x-amz-grant-full-control,指定具体用户设置权限。同样,这两种方式也不可同时使用。如果使用消息体,Grant个数不能超过100个。三种方式都会覆盖原有ACL属性,包括桶所有者自身的权限,如需保留原有ACL属性,应将需要保留的原ACL添加到本次操作中(x-amz-acl方式会默认将桶所有者权限设为FULL_CONTROL,而另外两种方式则不会保留任何原ACL属性)。
请求消息样式
PUT /{Bucket}/{Object}?acl&versionId=xxx HTTP/1.1
Host: xxx.zos.ctyun.cn
X-Amz-Content-SHA256: Content-SHA256
X-Amz-Date: Date
Authorization: Auth String
x-amz-acl: ACL
x-amz-grant-full-control: string
x-amz-grant-write: string
x-amz-grant-read: string
x-amz-grant-read-acp: string
x-amz-grant-write-acp: string
<AccessControlPolicy xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Owner>
<ID>string</ID>
</Owner>
<AccessControlList>
<Grant>
<Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="CanonicalUser">
<ID>string</ID>
</Grantee>
<Permission>string</Permission>
</Grant>
<Grant>
<Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="Group">
<URI>string</URI>
</Grantee>
<Permission>string</Permission>
</Grant>
<Grant>
<Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="AmazonCustomerByEmail">
<EmailAddress>string</EmailAddress>
</Grantee>
<Permission>string</Permission>
</Grant>
</AccessControlList>
</AccessControlPolicy>请求消息参数
| 参数名称 | 参数描述 | 类型 | 是否必须 |
|---|---|---|---|
| Bucket | 参数解释: 桶的名称。 | String | 是 |
| Object | 参数解释: 对象的名称。 | String | 是 |
| versionId | 参数解释: 多版本场景下,指定对象的特定版本。 | String | 否 |
请求消息头
该请求使用公共的请求消息头,请参见如何调用API-构造请求-请求消息头。但可以带附加消息头,附加请求消息头如下表所示。
| 参数名称 | 参数描述 | 类型 | 是否必须 |
|---|---|---|---|
| x-amz-acl | 参数解释: 为当前对象设置的ACL名称 约束限制: 不能与其他 x-amz-grant-*同时使用 取值范围: - private:私有。 - public-read:公共读。 - public-read-write:公共读写。注意:由于安全限制,对象存储底层禁用公共读写,设置后不可匿名写,如需使用可提工单申请。 - authenticated-read:所有经过认证的用户都可以获取该对象。 | String | 否 |
| x-amz-grant-full-control | 参数解释: 被授权用户可以对当前对象进行read, read ACP, write ACP操作 约束限制: 格式”id=xxx”或”emailAddress=xxx”或者”uri=xxx”以及他们的组合(用逗号连接) | String | 否 |
| x-amz-grant-read | 参数解释: 被授权用户可以对当前对象进行读操作,即下载该对象 约束限制: 格式”id=xxx”或”emailAddress=xxx”或者”uri=xxx”以及他们的组合(用逗号连接) | String | 否 |
| x-amz-grant-read-acp | 参数解释: 被授权用户可以读取当前对象的ACL 约束限制: 格式”id=xxx”或”emailAddress=xxx”或者”uri=xxx”以及他们的组合(用逗号连接) | String | 否 |
| x-amz-grant-write-acp | 参数解释: 被授权用户可以修改当前对象的ACL 约束限制: 格式”id=xxx”或”emailAddress=xxx”或者”uri=xxx”以及他们的组合(用逗号连接) | String | 否 |
请求消息元素
| 参数名称 | 参数描述 | 类型 | 是否必须 |
|---|---|---|---|
| AccessControlPolicy | 参数解释: 授权信息的根标签。 | Container | 消息体方式下必须 |
表AccessControlPolicy
| 参数名称 | 参数描述 | 类型 | 是否必须 |
|---|---|---|---|
| Owner | 参数解释: 对象所有者。 | Container | 消息体方式下必须 |
| AccessControlList | 参数解释: 授权列表。 | Container | 消息体方式下必须 |
表Owner
| 参数名称 | 参数描述 | 类型 | 是否必须 |
|---|---|---|---|
| ID | 参数解释: 对象所有者的uid。 | String | 消息体方式下必须 |
表AccessControlList
| 参数名称 | 参数描述 | 类型 | 是否必须 |
|---|---|---|---|
| Grant | 参数解释: 授权信息。 | Container | 消息体方式下必须 |
表Grant
| 参数名称 | 参数描述 | 类型 | 是否必须 |
|---|---|---|---|
| Grantee | 参数解释: 授权主体。 | Container | 消息体方式下必须 |
| Permission | 参数解释: 授予的权限。 取值范围: FULL_CONTROL、WRITE 、WRITE_ACP、READ、READ_ACP | String | 消息体方式下必须 |
表Grantee
| 参数名称 | 参数描述 | 类型 | 是否必须 |
|---|---|---|---|
| ID | 参数解释: 对象所有者的uid | String | 消息体方式下必须 |
| xsi:type | 参数解释: 被授权用户类型 取值范围: CanonicalUser 、Group | String | 消息体方式下必须 |
| URI | 参数解释: 被授权组URI。 取值范围: 所有用户:http://acs.amazonaws.com/groups/global/AllUsers 所有认证用户:http://acs.amazonaws.com/groups/global/AuthenticatedUsers | String | Group类型下必须 |
响应消息样式
HTTP/1.1 Status Code
x-amz-request-id: Request Id
Content-Type: ContentType
Content-Length: ContentLength
Date: Date
Connection: Keep-Alive 响应消息头
该请求的响应消息使用公共的响应消息头,请参见如何调用API-响应结果-响应消息头。
响应消息元素
该请求的响应中不带有响应元素。
错误码
请参见调用前必知-错误码-全局错误码。