PutBucket

更新时间:2025-03-27 01:54

调用PutBucket接口创建存储空间(Bucket)。

注意事项

  • 同一阿里云账号在同一地域(Region)内最多支持创建100个Bucket。

  • 每个地域都有对应的访问域名(Endpoint)。关于地域与访问域名对应关系的更多信息,请参见访问域名和数据中心

  • 阿里云账号对同一个Bucket执行多次PutBucket请求时,第一次请求是创建Bucket,后续请求是修改Bucket的元数据(例如Bucket ACL)。多次PutBucket请求会有Bucket元数据覆盖风险,请谨慎操作。

  • 北京时间2025年10月13日10:00:00起,OSS逐步调整所有地域通过API、SDK、ossutil创建Bucket时默认开启阻止公共访问。各个地域的生效变更时间,请参见公告说明。开启后,不允许创建公共访问权限,包括公共读或者公共读写ACL、以及公共访问语义的Bucket Policy。如果您的业务有公共访问需求,可在Bucket创建后关闭阻止公共访问。

权限说明

阿里云账号默认拥有全部权限。阿里云账号下的RAM用户或RAM角色默认没有任何权限,需要阿里云账号或账号管理员通过RAM PolicyBucket Policy授予操作权限。

API

Action

说明

API

Action

说明

PutBucket

oss:PutBucket

创建Bucket。

oss:PutBucketAcl

创建Bucket后,修改Bucket的ACL,需要此操作的权限。

请求语法

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>

请求头

名称

类型

是否必选

示例值

描述

名称

类型

是否必选

示例值

描述

x-oss-acl

字符串

private

指定Bucket的访问权限ACL。取值范围如下:

  • public-read-write:公共读写

  • public-read:公共读

  • private(默认):私有

关于Bucket访问权限ACL的更多信息,请参见设置存储空间访问权限ACL

x-oss-resource-group-id

字符串

rg-aek27tc****

指定资源组ID。

  • 如果在请求中携带该请求头并指定资源组ID,则创建的Bucket属于该资源组。

    当指定的资源组ID为rg-default-id时,创建的Bucket属于默认资源组。

  • 如果在请求中未携带该请求头,则创建的Bucket属于默认资源组。

您可以通过资源管理的控制台或ListResourceGroups接口获取资源组ID。具体操作,请分别参见查看资源组基本信息ListResourceGroups

x-oss-bucket-tagging

字符串

k1=v1&k2=v2

指定 Bucket 标签。

x-oss-hns-status

字符串

disabled

指定Bucket是否开启分层命名空间。

只能在创建Bucket时设置是否开启分层命名空间。对于已存在的Bucket不能更改Bucket的分层命名空间状态。

  • enabled:开启

    Bucket开启分层命名空间后,您可以在Bucket中进行目录操作,例如创建目录、删除目录、重命名目录等。

  • disabled(默认):不开启

此接口还需要包含公共请求头。更多信息,请参见公共请求头(Common Request Headers)

请求元素

名称

类型

是否必选

示例值

描述

名称

类型

是否必选

示例值

描述

StorageClass

字符串

Standard

指定Bucket的存储类型。取值范围如下:

  • Standard(默认):标准存储

  • IA:低频访问

  • Archive:归档存储

  • ColdArchive:冷归档存储

  • DeepColdArchive:深度冷归档存储

父节点:CreateBucketConfiguration

子节点:无

DataRedundancyType

字符串

LRS

指定Bucket的数据容灾类型。取值范围如下:

  • LRS(默认)

    本地冗余LRS将您的数据冗余存储在同一个可用区的不同存储设备上,可支持两个存储设备并发损坏时,仍维持数据不丢失,可正常访问。

  • ZRS

    同城冗余ZRS采用多可用区(AZ)内的数据冗余存储机制,将用户的数据冗余存储在同一地域(Region)的多个可用区。当某个可用区不可用时,仍然能够保障数据的正常访问。

父节点:CreateBucketConfiguration

子节点:无

响应头

名称

类型

示例值

描述

名称

类型

示例值

描述

Location

字符串

/oss-example

Bucket的地址。由/加上Bucket名称组成。

默认值:无

此接口还涉及其他公共响应头。更多信息,请参见公共响应头(Common Response Headers)

示例

  • 在默认资源组中创建Bucket

    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 qn6q**************:77Dv****************
    <?xml version="1.0" encoding="UTF-8"?>
    <CreateBucketConfiguration>
        <StorageClass>Standard</StorageClass>
        <DataRedundancyType>LRS</DataRedundancyType>    
    </CreateBucketConfiguration>
  • 返回示例

    HTTP/1.1 200 OK
    x-oss-request-id: 534B371674E88A4D8906****
    Date: Fri, 24 Feb 2017 03:15:40 GMT
    Content-Length: 0
    Connection: keep-alive
    Server: AliyunOSS
    Location: /oss-example
  • 在指定资源组中创建Bucket

    请求示例

    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
    x-oss-resource-group-id: rg-aek27tc********
    Authorization: OSS qn6q**************:77Dv****************
    <?xml version="1.0" encoding="UTF-8"?>
    <CreateBucketConfiguration>
        <StorageClass>Standard</StorageClass>
    </CreateBucketConfiguration>

    返回示例

    HTTP/1.1 200 OK
    x-oss-request-id: 534B371674E88A4D8906****
    Date: Fri, 24 Feb 2017 03:15:40 GMT
    Content-Length: 0
    Connection: keep-alive
    Server: AliyunOSS
    Location: /oss-example

SDK

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

命令行工具ossutil

PutBucket接口所对应的ossutil命令,请参见put-bucket

错误码

错误码

HTTP状态码

描述

错误码

HTTP状态码

描述

InvalidBucketName

400

创建Bucket时,定义的Bucket名称不符合命名规范。

AccessDenied

403

返回该错误的可能原因如下:

  • 发起PutBucket请求时没有传入用户验证信息。

  • 没有操作权限。

TooManyBuckets

400

创建的Bucket数量超过上限。同一阿里云账号在同一地域(Region)内最多可创建100个 Bucket。

BucketAlreadyExists

409

  • 在Bucket已删除的情况下,创建相同名称的Bucket的时间不符合要求。

    删除Bucket后,需要等待数小时(通常为4~8小时)才能再次创建同名的Bucket。

  • 在Bucket已存在的情况下,使用RAM用户或者STS等方式调用PutBucket再次重复创建相同名称的Bucket。

    仅支持使用阿里云账号再次重复创建相同名称Bucket。

  • 没有权限调用PutBucketAcl接口。请确保通过Bucket Policy或者RAM Policy授予调用者oss:PutBucketAcl的权限。

  • 对已存在的Bucket修改分层命名空间状态。只能在创建Bucket时设置是否开启分层命名空间。

  • 本页导读 (1)
  • 注意事项
  • 权限说明
  • 请求语法
  • 请求头
  • 请求元素
  • 响应头
  • 示例
  • SDK
  • 命令行工具ossutil
  • 错误码
文档反馈
phone 联系我们