创建桶
功能介绍
创建桶是指按照用户指定的桶名创建一个新桶的操作,新桶的桶名在OBS中必须是唯一的。了解更多创建桶的相关信息,请参见创建桶。
接口约束
- 桶创建成功后,不能修改名称和所属区域。创建时,请设置合适的桶名和区域。
- 一个账号及账号下的所有IAM用户一共可创建100个桶。建议结合OBS细粒度权限控制能力,合理进行桶规划和使用。例如,建议在桶内根据对象前缀划分不同的目录,通过细粒度权限控制实现不同目录在不同业务部门之间的权限隔离。每个桶中存放的对象的数量和大小总和没有限制,用户不需要考虑数据的可扩展性。
- 因为OBS桶是全局资源,所以您自有的桶不能重名,您与其他用户的桶也不能重名。
删桶后桶名会释放,释放完成后才能创建同名桶。调用删桶API一般耗时约30分钟释放,如遇特殊情况(例如欠费、销户触发删桶,删桶前需要先进行资源清理)耗时会更长,OBS无法保证此过程的时效性。因此创建同名桶失败,可能是由于桶名未释放完成。另外,如果桶名释放后,有其他用户在您之前抢先使用了桶名,创建同名桶也会失败。
授权信息
- 如果使用角色与策略授权(旧版IAM,即IAM v3接口),需具备obs:bucket:CreateBucket权限,授权操作请参见创建IAM自定义策略。
- 如果使用身份策略授权(新版IAM,即IAM v5接口),如下表所示,需具备obs:bucket:createBucket权限,授权操作请参见创建IAM自定义身份策略。
授权项
Action
访问级别
Access Level
资源类型(*为必须)
Resource Type (*: required)
Condition Key
Alias
依赖的授权项
Dependencies
obs:bucket:createBucket
Write
bucket *
-
-
-
-
- obs:EpochTime
- obs:SourceIp
- obs:TlsVersion
- obs:CustomDomain
- obs:BucketEncrypted
- obs:x-obs-acl
请求消息样式
以下为请求消息样例,请将示例中的BucketName修改为您的桶名,RegionID修改为桶所在的区域ID,可参考支持区域获取区域ID。
PUT / HTTP/1.1 Host: BucketName.obs.RegionID.myhuaweicloud.com Content-Length: BodyLength Date: GMT Date Authorization: SignatureValue x-obs-az-redundancy: 3az <CreateBucketConfiguration xmlns="http://obs.region.myhuaweicloud.com/doc/2015-06-30/"> <Location>RegionID</Location> </CreateBucketConfiguration>
URI参数(URI Parameters)
本接口的请求消息不带URI参数。
请求头参数(Request headers)
本接口请求头包括公共请求头和附加请求头,公共请求头参见表3,附加请求头如下所示。
|
消息头名称 |
消息头类型 |
是否必选 |
描述 |
|---|---|---|---|
|
x-obs-acl |
String |
否 |
参数解释: 创建桶时,可以加上此消息头设置桶的权限控制策略,使用的策略为预定义的ACL策略。 约束限制: OBS支持使用服务控制策略 (Service Control Policies,以下简称SCP)管理组织成员账号的行为,如果您所在的组织或组织单元使用SCP限制x-obs-acl的取值范围,例如SCP规定在创建桶或并行文件系统时不允许将x-obs-acl赋值为public-read、public-read-write,则携带禁止值的创建请求会失败,并返回403。了解更多SCP相关信息请参见SCP简介。 取值范围:
默认取值: private |
|
x-obs-storage-class |
String |
否 |
参数解释: 创建桶时,可以加上此消息头设置桶的默认存储类型。 取值范围:
默认取值: STANDARD |
|
x-obs-grant-read |
String |
否 |
参数解释: 授权READ权限给指定domain下的所有用户。允许列举桶内对象、列举桶中多段任务、列举桶中多版本对象、获取桶元数据。 示例:x-obs-grant-read:id=租户id 约束限制: 无 取值范围: id=租户id,获取方式请参考获取账号、IAM用户、项目、用户组、区域、委托的名称和ID。 默认取值: 无 |
|
x-obs-grant-write |
String |
否 |
参数解释: 授权WRITE权限给指定domain下的所有用户,允许创建、删除、覆盖桶内所有对象,允许初始化段、上传段、拷贝段、合并段、取消多段上传任务。 示例:x-obs-grant-write:id=租户id 约束限制: 无 取值范围: id=租户id,获取方式请参考获取账号、IAM用户、项目、用户组、区域、委托的名称和ID。 默认取值: 无 |
|
x-obs-grant-read-acp |
String |
否 |
参数解释: 授权READ_ACP权限给指定domain下的所有用户,允许读桶的ACL信息。 示例:x-obs-grant-read-acp:id=租户id 约束限制: 无 取值范围: id=租户id,获取方式请参考获取账号、IAM用户、项目、用户组、区域、委托的名称和ID。 默认取值: 无 |
|
x-obs-grant-write-acp |
String |
否 |
参数解释: 授权WRITE_ACP权限给指定domain下的所有用户,允许修改桶的ACL信息。 示例:x-obs-grant-write-acp:id=租户id 约束限制: 无 取值范围: id=租户id,获取方式请参考获取账号、IAM用户、项目、用户组、区域、委托的名称和ID。 默认取值: 无 |
|
x-obs-grant-full-control |
String |
否 |
参数解释: 授权FULL_CONTROL权限给指定domain下的所有用户。 示例:x-obs-grant-full-control:id=租户id 约束限制: 无 取值范围: id=租户id,获取方式请参考获取账号、IAM用户、项目、用户组、区域、委托的名称和ID。 默认取值: 无 |
|
x-obs-grant-read-delivered |
String |
否 |
参数解释: 授权READ权限给指定domain下的所有用户,并且在默认情况下,该READ权限将传递给桶内所有对象。 示例:x-obs-grant-read-delivered:id=租户id 约束限制: 无 取值范围: id=租户id,获取方式请参考获取账号、IAM用户、项目、用户组、区域、委托的名称和ID。 默认取值: 无 |
|
x-obs-grant-full-control-delivered |
String |
否 |
参数解释: 授权FULL_CONTROL权限给指定domain下的所有用户,并且在默认情况下,该FULL_CONTROL权限将传递给桶内所有对象。 示例:x-obs-grant-full-control-delivered:id=租户id 约束限制: 无 取值范围: id=租户id,获取方式请参考获取账号、IAM用户、项目、用户组、区域、委托的名称和ID。 默认取值: 无 |
|
x-obs-az-redundancy |
String |
否 |
参数解释: 创建桶时带上此消息头设置桶的数据冗余策略。 约束限制: 用户携带该头域指定新创的桶的数据冗余策略,存在一种情况是当该区域如果不支持多AZ存储,则该桶的存储类型仍为单AZ。 取值范围:
默认取值: 不指定头域,默认为单AZ。 |
|
x-obs-fs-file-interface |
String |
否 |
参数解释: 创建桶时可以带上此消息头以创建并行文件系统。 示例:x-obs-fs-file-interface:Enabled 取值范围: Enabled 默认取值: 指定头域时必须为Enabled,无默认取值。 |
|
x-obs-epid |
String |
否 |
参数解释: 企业项目ID。开通企业项目的用户可以从企业项目服务获取,格式为uuid,默认项目传“0”或者不带该头域,未开通企业项目的用户可以不带该头域。 示例:x-obs-epid:9892d768-2d13-450f-aac7-ed0e44c2585f 约束限制: 无 取值范围: 填写正确的企业项目ID或者为ID为0。 默认取值: 0 |
|
x-obs-bucket-type |
String |
否 |
参数解释: 创建桶时可以带上此消息头指定创建的桶类型,桶类型包括OBS桶和文件桶。 示例:x-obs-bucket-type:OBJECT 约束限制: 无 取值范围:
默认取值: 指定头域时必须手动指定取值,无默认取值。不指定头域时,默认为OBJECT。 |
|
x-obs-bucket-object-lock-enabled |
String |
否 |
参数解释: 创建桶时可以带上此消息头来开启WORM开关。 示例:x-obs-bucket-object-lock-enabled:true 约束限制:
取值范围:
默认取值: 指定头域为true或True时,开启桶的对象锁策略;如果不指定头域时,不开启对象锁策略。 |
|
x-obs-server-side-encryption |
String |
否 |
参数解释: 创建桶时可以带上此头域来指定桶加密配置的加密模式。示例:x-obs-server-side-encryption: kms 约束限制: 无 取值范围:
默认取值: 指定头域时必须指定对应的值,无默认值。不指定头域时不开启桶加密。 |
|
x-obs-server-side-data-encryption |
String |
否 |
参数解释: 创建桶时带上此头域来指定服务端加密配置的加密算法。 示例:x-obs-server-side-data-encryption: AES256 约束限制: 无 取值范围:
默认取值: 无 |
|
x-obs-server-side-encryption-kms-key-id |
String |
如果携带了x-obs-server-side-encryption: kms,该头域可选。 |
参数描述: 当加密方式为SSE-KMS且使用指定密钥加密时,需输入密钥ID。密钥ID获取方法请参见查看密钥。 类型:String 约束限制: 当您设置了x-obs-server-side-encryption头域且赋值为“kms”,即选择kms加密方式时,才能使用该头域指定加密密钥。 默认取值: 当您选择使用kms加密方式,但未设置此头域时,默认的主密钥将会被使用。如果默认主密钥不存在,系统将默认创建并使用。 |
|
x-obs-server-side-encryption-bucket-key-enabled |
String |
否 |
参数解释: SSE-KMS桶密钥功能开关。 约束限制: 当您设置本头域为“true”时,必须同时设置本接口的另一个头域x-obs-server-side-encryption-kms-key-id以指定密钥ID。 取值范围:
默认取值: false |
|
x-obs-sse-kms-key-project-id |
String |
如果未携带x-obs-server-side-encryption-kms-key-id,则不能携带该头域。 |
参数解释: SSE-KMS加密方式下KMS主密钥所属的项目ID(非企业项目ID)。 约束限制: 无 取值范围: 与x-obs-server-side-encryption-kms-key-id指定的密钥ID相匹配的项目ID(非企业项目ID)。 默认取值: 无 |
请求体参数(Request body)
|
元素名称 |
元素类型 |
是否必选 |
描述 |
|---|---|---|---|
|
Location |
String |
否 |
参数解释: 指定Bucket在哪个区域被创建。
取值范围: 有关OBS区域和终端节点的更多信息,请参考地区和终端节点。 默认取值: 终端节点为obs.myhuaweicloud.com且用户未设定区域时,默认为华北-北京一(cn-north-1)。 |
响应消息样式
HTTP/1.1 status_code Location: /BucketName Date: GMT Date Content-Length: BodyLength
响应头 (Response Headers)
该请求的响应消息使用公共响应头,具体请参考表1。
除公共响应头之外,本接口还可以返回附加响应头,如下表所示。
|
消息头名称 |
消息头类型 |
描述 |
|---|---|---|
|
Location |
String |
参数解释: 桶地址,由“/”+“桶名”组成。例如:/exampleBucket 取值范围: 桶名 |
|
x-obs-server-side-encryption |
String |
参数解释: 桶的加密模式。示例:x-obs-server-side-encryption: kms 取值范围:
|
|
x-obs-server-side-data-encryption |
String |
参数解释: 服务端加密配置的加密算法。示例:x-obs-server-side-data-encryption: AES256 取值范围:
|
|
x-obs-server-side-encryption-kms-key-id |
String |
参数描述: 加密方式为SSE-KMS且使用自定义KMS主密钥加密时,返回KMS主密钥的密钥ID。 取值范围: 不涉及 |
|
x-obs-sse-kms-key-project-id |
String |
参数解释: 加密方式为SSE-KMS且使用自定义KMS密钥加密时,返回KMS主密钥所属的项目ID(非企业项目ID)。 取值范围: x-obs-server-side-encryption-kms-key-id指定的KMS主密钥所属的项目ID(非企业项目ID)。 |
响应体 (Response Body)
本接口的响应消息中不携带响应体。
错误响应消息
无特殊错误,所有错误已经包含在表2中。
请求示例:创建桶
1 2 3 4 5 6 7 8 9 10 11 |
PUT / HTTP/1.1 User-Agent: curl/7.29.0 Host: examplebucket.obs.region.myhuaweicloud.com Accept: */* Date: WED, 01 Jul 2015 02:25:05 GMT Authorization: OBS H4IPJX0TQTHTHEBQQCEC:75/Y4Ng1izvzc1nTGxpMXTE6ynw= Content-Length: 157 <CreateBucketConfiguration xmlns="http://obs.region.myhuaweicloud.com/doc/2015-06-30/"> <Location>region</Location> </CreateBucketConfiguration> |
响应示例:创建桶
1 2 3 4 5 6 7 |
HTTP/1.1 200 OK Server: OBS x-obs-request-id: BF260000016435CE298386946AE4C482 Location: /examplebucket x-obs-id-2: 32AAAQAAEAABSAAgAAEAABAAAQAAEAABCT9W2tcvLmMJ+plfdopaD62S0npbaRUz Date: WED, 01 Jul 2015 02:25:06 GMT Content-Length: 0 |
请求示例:创建指定ACL和存储类型的桶
1 2 3 4 5 6 7 8 9 10 11 12 13 |
PUT / HTTP/1.1 User-Agent: curl/7.29.0 Host: examplebucket.obs.region.myhuaweicloud.com Accept: */* Date: WED, 01 Jul 2015 02:25:05 GMT x-obs-acl:public-read x-obs-storage-class:STANDARD Authorization: OBS H4IPJX0TQTHTHEBQQCEC:75/Y4Ng1izvzc1nTGxpMXTE6ynw= Content-Length: 157 <CreateBucketConfiguration xmlns="http://obs.region.myhuaweicloud.com/doc/2015-06-30/"> <Location>region</Location> </CreateBucketConfiguration> |
响应示例:创建指定ACL和存储类型的桶
1 2 3 4 5 6 7 |
HTTP/1.1 200 OK Server: OBS x-obs-request-id: BF260000016435CE298386946AE4C482 Location: /examplebucket x-obs-id-2: 32AAAQAAEAABSAAgAAEAABAAAQAAEAABCT9W2tcvLmMJ+plfdopaD62S0npbaRUz Date: WED, 01 Jul 2015 02:25:06 GMT Content-Length: 0 |
请求示例:创建桶时选择AZ
1 2 3 4 5 6 7 8 9 |
PUT / HTTP/1.1 Host: examplebucket.obs.region.myhuaweicloud.com Content-Length: length Date: date Authorization: authorization x-obs-az-redundancy: 3az <CreateBucketConfiguration xmlns="http://obs.region.myhuaweicloud.com/doc/2015-06-30/"> <Location>region</Location> </CreateBucketConfiguration> |
响应示例:创建桶时选择AZ
1 2 3 4 5 6 7 |
HTTP/1.1 200 OK Server: OBS x-obs-request-id: BF260000016435CE298386946AE4C482 Location: /examplebucket x-obs-id-2: 32AAAQAAEAABSAAgAAEAABAAAQAAEAABCT9W2tcvLmMJ+plfdopaD62S0npbaRUz Date: WED, 01 Jul 2015 02:25:06 GMT Content-Length: 0 |
请求示例:创建并行文件系统
1 2 3 4 5 6 7 8 9 10 11 12 |
PUT / HTTP/1.1 User-Agent: curl/7.29.0 Host: examplebucket.obs.region.myhuaweicloud.com Accept: */* Date: WED, 01 Jul 2015 02:25:05 GMT Authorization: OBS H4IPJX0TQTHTHEBQQCEC:75/Y4Ng1izvzc1nTGxpMXTE6ynw= Content-Length: 157 x-obs-fs-file-interface: Enabled <CreateBucketConfiguration xmlns="http://obs.region.myhuaweicloud.com/doc/2015-06-30/"> <Location>region</Location> </CreateBucketConfiguration> |
响应示例:创建并行文件系统
1 2 3 4 5 6 7 |
HTTP/1.1 200 OK Server: OBS x-obs-request-id: BF260000016435CE298386946AE4C482 Location: /examplebucket x-obs-id-2: 32AAAQAAEAABSAAgAAEAABAAAQAAEAABCT9W2tcvLmMJ+plfdopaD62S0npbaRUz Date: WED, 01 Jul 2015 02:25:06 GMT Content-Length: 0 |
请求示例:创建桶时打开WORM开关
PUT / HTTP/1.1 User-Agent: curl/7.29.0 Host: examplebucket.obs.region.myhuaweicloud.com Accept: */* Date: WED, 01 Jul 2015 02:25:05 GMT Authorization: OBS H4IPJX0TQTHTHEBQQCEC:75/Y4Ng1izvzc1nTGxpMXTE6ynw= x-obs-bucket-object-lock-enabled:true Content-Length: 0
响应示例:创建桶时打开WORM开关
HTTP/1.1 200 OK Server: OBS x-obs-request-id: 00000184C11AC7A6809F881341842C02 x-reserved-indicator: Unauthorized Location: /examplebucket x-obs-id-2: 32AAAQAAEAABSAAgAAEAABAAAQAAEAABCT9W2tcvLmMJ+plfdopaD62S0npbaRUz Date: WED, 01 Jul 2015 02:25:06 GMT Content-Length: 0
请求示例:创建桶时设置SSE-KMS模式服务端加密配置
PUT / HTTP/1.1 User-Agent: curl/7.29.0 Host: examplebucket.obs.region.myhuaweicloud.com Accept: */* Date: WED, 01 Jul 2015 02:25:05 GMT Authorization: OBS H4IPJX0TQTHTHEBQQCEC:75/Y4Ng1izvzc1nTGxpMXTE6ynw= x-obs-server-side-encryption: kms x-obs-server-side-data-encryption: obs:kms Content-Length: 0
响应示例:创建桶时设置SSE-KMS模式服务端加密配置
HTTP/1.1 200 OK Server: OBS x-obs-request-id: 0000018865CDACCA53062E5C2674A8FC x-reserved-indicator: Unauthorized Location: /examplebucket x-obs-server-side-encryption: kms x-obs-server-side-data-encryption: obs:kms x-obs-id-2: 32AAAQAAEAABSAAgAAEAABAAAQAAEAABCT9W2tcvLmMJ+plfdopaD62S0npbaRUz Date: WED, 01 Jul 2015 02:25:06 GMT Content-Length: 0
请求示例:创建桶时使用指定的KMS密钥设置服务端加密配置
PUT / HTTP/1.1 User-Agent: curl/7.29.0 Host: examplebucket.obs.region.myhuaweicloud.com Accept: */* Date: WED, 01 Jul 2015 02:25:05 GMT Authorization: OBS H4IPJX0TQTHTHEBQQCEC:75/Y4Ng1izvzc1nTGxpMXTE6ynw= x-obs-server-side-encryption: kms x-obs-server-side-data-encryption: obs:kms x-obs-server-side-encryption-kms-key-id: 8r3u893k-fops-32m9-ba8e-9e4989b130ba x-obs-sse-kms-key-project-id: z2a619fc6s9e4062aca895fa612qd095 Content-Length: 0
响应示例:创建桶时使用指定的KMS密钥设置服务端加密配置
HTTP/1.1 200 OK Server: OBS x-obs-request-id: 0000018865CDACCA53062E5C2674A8FC x-reserved-indicator: Unauthorized Location: /examplebucket x-obs-server-side-encryption: kms x-obs-server-side-data-encryption: obs:kms x-obs-id-2: 32AAAQAAEAABSAAgAAEAABAAAQAAEAABCT9W2tcvLmMJ+plfdopaD62S0npbaRUz Date: WED, 01 Jul 2015 02:25:06 GMT Content-Length: 0
请求示例:创建桶并显式配置访问权限
PUT / HTTP/1.1
Authorization: OBS H4IPJX0TQTHTHEBQQCEC:iqSPeUBl66PwXDApxjRKk6hlcN4=
x-obs-grant-read: id=783fc6vz2cf2442c096evxxxxxxxxxxxx
x-obs-grant-write: id=3u3fc6vz2cf24mc830fhsxxxxxxxxxxxx
x-obs-grant-read-acp: id=902su2vz2cf2vire.239caxxxxxxxxxxxx
User-Agent: curl/7.29.0
Host: examplebucket.obs.region.myhuaweicloud.com
Date: WED, 01 Jul 2015 02:37:22 GMT
Content-Type: application/xml
<CreateBucketConfiguration xmlns="http://obs.region.myhuaweicloud.com/doc/2015-06-30/">
<Location>region</Location>
</CreateBucketConfiguration>
响应示例:创建桶并显式配置访问权限
x-obs-id-2: 32AAAQAAEAABAAAQAAEAABAAAQAAEAABCTeau73DlKTh4wPYzoZf5w3KacolerP4 x-obs-request-id: 0000018A2A22B72447CF01A99F32E2B0 Server: OBS Content-Length: 0 Date: WED, 01 Jul 2015 02:37:22 GMT Location: /examplebucket
使用SDK调用接口
建议您使用OBS SDK调用接口。SDK对API进行了封装以简化您的开发工作,直接调用SDK接口函数即可访问OBS,无需手动计算签名。

