创建桶
功能介绍
创建桶是指按照用户指定的桶名创建一个新桶的操作。
- 默认情况下,一个用户可以拥有的桶的数量不能超过100个。
- 用户删除桶后,需要等待30分钟才能创建同名桶和并行文件系统。
- OBS支持在创建桶时指定桶的AZ类型,您可以开启或关闭多AZ。关闭多AZ时,桶内数据默认存储在单个AZ内;开启多AZ时,桶内数据冗余存储在多个AZ内,可靠性更高。旧桶AZ类型默认为单AZ。
- OBS支持在创建桶时打开桶级WORM开关,打开后可以为桶内的对象设置WORM,详见配置桶级默认WORM策略。在打开WORM开关的时候会默认为桶开启多版本,且多版本状态无法关闭;您无法为一个桶同时开启WORM开关和并行文件系统。
新创建桶的桶名在OBS中必须是唯一的。如果是同一个用户重复创建同一区域的同名桶时返回成功。除此以外的其他场景重复创建同名桶返回桶已存在。用户可以在请求消息头中加入x-obs-acl等参数,设置要创建桶的权限控制策略。
存储类型
允许用户创建不同默认存储类型的桶。发送创桶请求时携带头域“x-obs-storage-class”来指定桶的默认存储类型。桶内对象的存储类型与桶默认存储类型保持一致。存储类型有4种:STANDARD(标准存储)、WARM(低频访问存储)、COLD(归档存储)、DEEP_ARCHIVE(深度归档存储)。如果没有携带此头域 ,则创建的桶为标准存储类型。
当往桶内上传对象时,如果没有指定对象的存储类别(参考PUT上传),则该对象的存储类型取桶的默认存储类型。
- OBS标准存储拥有低访问时延和较高的吞吐量,因而适用于有大量热点文件需要频繁访问数据的业务场景,例如:大数据、移动应用、热点视频、社交图片等场景。
- OBS低频访问存储适用于不频繁访问(少于每月一次访问)但在需要时也要求快速访问数据的业务场景,例如:文件同步/共享、企业备份等场景。与标准存储相比,低频访问存储有相同的数据持久性、吞吐量以及访问时延,且成本较低,但是可用性略低于标准存储。
- OBS归档存储适用于很少访问(平均一年访问一次)数据的业务场景,例如:数据归档、长期备份等场景。归档存储安全、持久且成本极低,可以用来替代磁带库。为了保持成本低廉,数据恢复时间可能长达数分钟到数小时不等。
- 深度归档存储(受限公测)适用于长期不访问(平均几年访问一次)数据的业务场景,其成本相比归档存储更低,但相应的数据恢复时间将更长,一般为数小时。
请求消息样式
1 2 3 4 5 6 7 8 9 10 |
PUT / HTTP/1.1 Host: bucketname.obs.cn-north-4.myhuaweicloud.com Content-Length: length Date: date Authorization: authorization x-obs-az-redundancy: 3az <CreateBucketConfiguration xmlns="http://obs.cn-north-4.myhuaweicloud.com/doc/2015-06-30/"> <Location>location</Location> </CreateBucketConfiguration> |
请求消息参数
该请求消息中不带请求参数。
请求消息头
该操作消息头与普通请求一样,请参见表3,但可以带附加消息头,附加请求消息头如下所示。
消息头名称 |
消息头类型 |
是否必选 |
描述 |
---|---|---|---|
x-obs-acl |
String |
否 |
参数解释: 创建桶时,可以加上此消息头设置桶的权限控制策略,使用的策略为预定义的ACL策略。 取值范围:
默认取值: 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 |
字符串 |
否 |
参数解释: 授权WRITE_ACP权限给指定domain下的所有用户,允许修改桶的ACL信息。 示例:x-obs-grant-write-acp:id=租户id 约束限制: 无 取值范围: id=租户id,获取方式请参考获取账号、IAM用户、项目、用户组、区域、委托的名称和ID。 默认取值: 无 |
x-obs-grant-full-control |
字符串 |
否 |
参数解释: 授权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。示例:x-obs-az-redundancy:3az 约束限制: 用户携带该头域指定新创的桶的存储类型为多AZ,存在一种情况是当该区域如果不支持多AZ存储,则该桶的存储类型仍为单AZ。 取值范围: 3az 默认取值: 指定头域时必须为3az,无默认取值。不指定头域,默认为单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:开启WORM开关 默认取值: 指定头域时必须为true,无默认取值。不指定头域时,不开启WORM。 |
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,该头域可选 AES256、SM4; 当携带了x-obs-server-side-encryption:obs,该头域可选 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-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指定的KMSMasterKeyID相匹配的项目ID(非企业项目ID)。 默认取值: 无 |
请求消息元素
该操作可以带附加请求消息元素,附加请求消息元素的具体描述如表2所示。
元素名称 |
元素类型 |
是否必选 |
描述 |
---|---|---|---|
Location |
String |
否 |
参数解释: 指定Bucket在哪个区域被创建。
约束限制: 该参数定义了桶将会被创建在哪个区域,如果使用的终端节点是obs.myhuaweicloud.com,可以不携带此参数;如果使用的终端节点不是obs.myhuaweicloud.com,则必须携带此参数。 取值范围: 有关OBS区域和终端节点的更多信息,请参考地区和终端节点。 默认取值: 终端节点为obs.myhuaweicloud.com且用户未设定区域时,默认为华北-北京一(cn-north-1)。 |
响应消息样式
1 2 3 4 |
HTTP/1.1 status_code Location: location Date: date Content-Length: length |
响应消息头
该请求的响应消息使用公共消息头,具体请参考表1。
响应消息元素
该请求的响应中不带有响应元素。
错误响应消息
无特殊错误,所有错误已经包含在表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.cn-north-4.myhuaweicloud.com Accept: */* Date: WED, 01 Jul 2015 02:25:05 GMT Authorization: OBS H4IPJX0TQTHTHEBQQCEC:75/Y4Ng1izvzc1nTGxpMXTE6ynw= Content-Length: 157 <CreateBucketConfiguration xmlns="http://obs.cn-north-4.myhuaweicloud.com/doc/2015-06-30/"> <Location>cn-north-4</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.cn-north-4.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.cn-north-4.myhuaweicloud.com/doc/2015-06-30/"> <Location>cn-north-4</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.cn-north-4.myhuaweicloud.com Content-Length: length Date: date Authorization: authorization x-obs-az-redundancy:3az <CreateBucketConfiguration xmlns="http://obs.cn-north-4.myhuaweicloud.com/doc/2015-06-30/"> <Location>cn-north-4</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.cn-north-4.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.cn-north-4.myhuaweicloud.com/doc/2015-06-30/"> <Location>cn-north-4</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.cn-north-4.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
请求示例:创建桶并显式配置访问权限
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