PutBucketACL接口用于修改存储空间(Bucket)的访问权限。只有该Bucket的创建者有权限执行此操作。

说明 Bucket拥有者发起PutBucketACL请求时,如果Bucket已存在但权限不一致,将更新权限。如果Bucket不存在,将创建Bucket。

请求语法

PUT /?acl HTTP/1.1
x-oss-acl: Permission
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Date: GMT Date
Authorization: SignatureValue

请求头

名称 类型 是否必选 描述
x-oss-acl 字符串

指定Bucket的访问权限。

PutBucketACL接口通过Put请求中的x-oss-acl请求头来设置权限,如果没有该请求头,权限设置不生效。

取值:public-read-write、public-read、private

示例

请求示例
PUT /?acl HTTP/1.1
x-oss-acl: public-read
Host: oss-example.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 24 Feb 2012 03:21:12 GMT
Authorization: OSS qn6qrrqxo2oawuk53otfjbyc:KU5h8YMUC78M30dXqf3JxrT****
正常的返回示例
HTTP/1.1 200 OK
x-oss-request-id: 534B371674E88A4D8906****
Date: Fri, 24 Feb 2012 03:21:12 GMT
Content-Length: 0
Connection: keep-alive
Server: AliyunOSS
设置权限无效的返回示例
HTTP/1.1 400 Bad Request
x-oss-request-id: 56594298207FB3044385****
Date: Fri, 24 Feb 2012 03:55:00 GMT
Content-Length: 309
Content-Type: text/xml; charset=UTF-8
Connection: keep-alive
Server: AliyunOSS

<?xml version="1.0" encoding="UTF-8"?>
<Error>
  <Code>InvalidArgument</Code>
  <Message>no such bucket access control exists</Message>
  <RequestId>5***9</RequestId>
  <HostId>***-test.example.com</HostId>
  <ArgumentName>x-oss-acl</ArgumentName>
  <ArgumentValue>error-acl</ArgumentValue>
</Error>

SDK

此接口所对应的各语言SDK如下:

错误码

错误码 HTTP 状态码 描述
AccessDenied 403
  • 发起PutBucketACL请求时,没有传入用户验证信息
  • 没有发起PutBucketACL请求的权限。只有该Bucket的创建者有权限执行此操作。