PutBucketACL接口用于设置或修改存储空间(Bucket)的访问权限(ACL)。

注意事项

使用PutBucketACL接口时,有如下注意事项:

  • 该接口的请求者需要对Bucket有写入ACL的权限。
  • PutBucketACL为覆盖语义,即新传入ACL将覆盖原有的ACL。
  • 如果指定要设置ACL的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的访问权限ACL。

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

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

  • public-read-write(公共读写):所有用户都有该Bucket内的文件的读写权限。请谨慎使用该访问权限。
  • public-read(公共读):Bucket的拥有者和授权用户有该Bucket内的文件的读写权限,其他用户只有该Bucket内的文件的读权限。请谨慎使用该访问权限。
  • private:Bucket的拥有者和授权用户有该Bucket内的文件的读写权限,其他用户没有权限操作该Bucket内的文件。

示例

请求示例

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 qn6qrrqxo2oawuk53otf****: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请求的权限。