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的创建者有权限执行此操作。