开发者社区> 问答> 正文

关于Bucket的操作之如何实现PutBucket?

PutBucket用于创建Bucket(不支持匿名访问)。创建的Bucket所在的Region和发送请求的Endpoint所对应的Region一致。Bucket所在的数据中心确定后,该Bucket下的所有Object将一直存放在对应的地区。更多内容参见 Bucket和数据中心

请求语法PUT / HTTP/1.1
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Date: GMT Date
x-oss-acl: Permission
Authorization: SignatureValue
<?xml version="1.0" encoding="UTF-8"?>
<CreateBucketConfiguration>
    <StorageClass>Standard</StorageClass>
</CreateBucketConfiguration>





细节分析

  1. 可以Put请求中的 x-oss-acl 头来设置Bucket访问权限。目前Bucket有三种访问权限:public-read-write,public-read和private。
  2. 如果请求的Bucket已经存在,并且请求者是所有者,返回200 OK成功。
  3. 如果请求的Bucket已经存在,但是不是请求者所拥有的,返回409 Conflict。错误码:BucketAlreadyExists。
  4. 如果想创建的Bucket不符合命名规范,返回400 Bad Request消息。错误码:InvalidBucketName。
  5. 如果用户发起PUT Bucket请求的时候,没有传入用户验证信息,返回403 Forbidden消息。错误码:AccessDenied。
  6. 如果PutBucket的时候发现已经超过bucket最大创建数时,[backcolor=transparent]默认30个,返回400 Bad Request消息。错误码:TooManyBuckets。
  7. 创建的Bucket,如果没有指定访问权限,则默认使用 Private 权限。
  8. 创建的Bucket,可以指定Bucket的存储类型,可选值为Standard和IA、Archive。


示例


[backcolor=transparent]请求示例: PUT / HTTP/1.1
Host: oss-example.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 24 Feb 2017 03:15:40 GMT
x-oss-acl: private
Authorization: OSS qn6qrrqxo2oawuk53otfj byc:77Dvh5wQgIjWjwO/KyRt8dOPfo8=
<?xml version="1.0" encoding="UTF-8"?>
<CreateBucketConfiguration>
    <StorageClass>Standard</StorageClass>
</CreateBucketConfiguration>


[backcolor=transparent]返回示例: HTTP/1.1 200 OK
x-oss-request-id: 534B371674E88A4D8906008B
Date: Fri, 24 Feb 2017 03:15:40 GMT
Location: /oss-example
Content-Length: 0
Connection: keep-alive
Server: AliyunOSS

展开
收起
青衫无名 2017-10-20 10:31:18 2158 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载