开发者社区 问答 正文

关于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 2196 分享 版权
阿里云 AI 助理回答

您提到的是使用阿里云对象存储服务(OSS)的PutBucket API操作来创建一个新的Bucket。下面是对您提供的信息的一个总结和补充,帮助您更好地理解和使用这个功能:

PutBucket操作概览

  • 功能:用于在阿里云OSS中创建一个新的Bucket。
  • 权限要求:操作者必须拥有相应的权限,匿名访问不支持此操作。
  • Region匹配:创建的Bucket所在的Region需与发出请求的Endpoint对应的Region一致。
  • 命名规范:Bucket名称需要遵循OSS的命名规则,比如全局唯一、长度限制等。

请求语法

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

访问权限设置 (x-oss-acl)

  • public-read-write:所有用户可读写。
  • public-read:所有用户可读,仅创建者可写。
  • private:默认,仅创建者可读写。

错误码及响应

  • 200 OK:Bucket创建成功。
  • 409 Conflict:Bucket已存在且不属于请求者。
  • 400 Bad Request:命名不合法或超过Bucket最大创建数(默认30个)。
  • 403 Forbidden:缺少验证信息。
  • TooManyBuckets:错误码对应说明Bucket数量已达上限。

示例

请求示例展示了如何通过HTTP PUT方法创建一个名为oss-example的Bucket,并设置其访问权限为private

返回示例

成功的响应会返回HTTP状态码200 OK,并包含一些元数据如x-oss-request-idDateLocation等,表明Bucket创建成功。

注意事项

  • 确保Bucket名称符合OSS的命名规范,避免因名称问题导致创建失败。
  • 考虑到安全性,建议根据实际需求选择合适的访问权限。
  • 若有特定的存储需求(如归档存储),可以在创建Bucket时指定存储类型(Standard, IA, Archive)。

希望这些信息能帮助您顺利使用阿里云OSS的PutBucket操作。如果有更具体的问题或需要进一步的帮助,请随时提问。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答