This operation is used to create a bucket with a specified name.
A bucket name must be unique in OBS. If a user creates a bucket with the same name as that of an existing bucket under the same account and in the same region, a 200 code (indicating success) is returned. In scenarios other than the preceding one, the request for creating a bucket with the same name as that of an existing one will receive the 409 code (indicating that a namesake bucket already exists). To set an access control policy for the bucket to be created, you can add the x-obs-acl parameter to request headers.
You can create buckets with different storage classes. The x-obs-storage-class header in a bucket creation request specifies the bucket's storage class. If you do not specify a storage class when you upload an object to the bucket, the object inherits the storage class of the bucket. The storage class options are as follows: STANDARD (Standard), WARM (Warm), COLD (Cold). If the x-obs-storage-class header is not in the request, a Standard bucket will be created.
If the storage class of an object is not specified when it is uploaded to a bucket (see Uploading an Object - PUT), the object will be stored in the default storage class of the bucket.
1 2 3 4 5 6 7 8 9 | PUT / HTTP/1.1 Host: bucketname.obs.region.example.com Content-Length: length Date: date Authorization: authorization <CreateBucketConfiguration xmlns="http://obs.region.example.com/doc/2015-06-30/"> <Location>location</Location> </CreateBucketConfiguration> |
This request contains no parameters.
The operation message header is the same as that of a common request. For details, see Table 3. However, this request can contain additional headers. The following table describes the additional headers for this request.
Header |
Type |
Mandatory (Yes/No) |
Description |
---|---|---|---|
x-obs-acl |
String |
No |
Explanation: When creating a bucket, you can use this parameter to set a pre-defined ACL. Value range:
Default value: private |
x-obs-storage-class |
String |
No |
Explanation: When creating a bucket, you can add this header to set the default storage class for the bucket. Value range:
Default value: STANDARD |
x-obs-grant-read |
String |
No |
Explanation: Grants the read permission to all users in a specified domain. It allows you to list objects in a bucket, list multipart tasks in a bucket, list multi-version objects in a bucket, and obtain bucket metadata. Example: x-obs-grant-read:id=tenant-ID Restrictions: None Value range: id=tenant-ID. For details, see Obtaining a Domain ID and a User ID. Default value: None |
x-obs-grant-write |
String |
No |
Explanation: Grants the WRITE permission to all users in a specified domain to create, delete, and overwrite all objects in a bucket; and initiate multipart uploads, upload parts, copy parts, assemble parts, and cancel multipart uploads. Example: x-obs-grant-write:id=tenant-ID Restrictions: None Value range: id=tenant-ID. For details, see Obtaining a Domain ID and a User ID. Default value: None |
x-obs-grant-read-acp |
String |
No |
Explanation: Grant the READ_ACP permission to all users in a specified domain to allow them to read the bucket ACL. Example: x-obs-grant-read-acp:id=Account ID Restrictions: None Value range: id=tenant-ID. For details, see Obtaining a Domain ID and a User ID. Default value: None |
x-obs-grant-write-acp |
String |
No |
Explanation: Grants the WRITE_ACP permission to all users in a specified domain to allow them to modify the bucket ACL. Example: x-obs-grant-write-acp:id=Account ID Restrictions: None Value range: id=tenant-ID. For details, see Obtaining a Domain ID and a User ID. Default value: None |
x-obs-grant-full-control |
String |
No |
Explanation: Grants the FULL_CONTROL permission to all users in a specified domain. Example: x-obs-grant-full-control:id=tenant-ID Restrictions: None Value range: id=tenant-ID. For details, see Obtaining a Domain ID and a User ID. Default value: None |
x-obs-grant-read-delivered |
String |
No |
Explanation: Grants the READ permission to all users in a specified domain. By default, the read permission is granted on all objects in the bucket. Example: x-obs-grant-read-delivered:id=tenant-ID Restrictions: None Value range: id=tenant-ID. For details, see Obtaining a Domain ID and a User ID. Default value: None |
x-obs-grant-full-control-delivered |
String |
No |
Explanation: Grants the FULL_CONTROL permission to all users in a specified domain. By default, the FULL_CONTROL permission is granted on all objects in the bucket. Example: x-obs-grant-full-control-delivered:id=tenant-ID Restrictions: None Value range: id=tenant-ID. For details, see Obtaining a Domain ID and a User ID. Default value: None |
x-obs-fs-file-interface |
String |
No |
Explanation: This header can be carried when you want to create a parallel file system. Example: x-obs-fs-file-interface:Enabled Value range: Enabled Default value: If the header is specified, the value must be Enabled. There is no default value. |
x-obs-bucket-object-lock-enabled |
String |
No |
Explanation: When creating a bucket, you can use this header to enable WORM for the bucket. Example: x-obs-bucket-object-lock-enabled:true Restrictions: Only object buckets are supported. Value range: true: WORM is enabled. Default value: If the header is specified, the value must be true. There is no default value. If the header is not specified, WORM is disabled. |
This request can use additional elements. For details about additional elements, see Table 2.
Element |
Type |
Mandatory (Yes/No) |
Description |
---|---|---|---|
Location |
String |
No |
Explanation: Specifies the region where a bucket will be created.
Restrictions: If the used endpoint is obs.otc.t-systems.com, this parameter is not required. If any other endpoint is used, this parameter is required. Value range: For details about OBS regions and endpoints, see Regions and Endpoints. Default value: If the endpoint is obs.otc.t-systems.com and no region is specified, the default value is eu-de. |
1 2 3 4 | HTTP/1.1 status_code Location: location Date: date Content-Length: length |
The response to the request uses common headers. For details, see Table 1.
This response contains no elements.
No special error responses are returned. For details about error responses, see Table 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.example.com Accept: */* Date: WED, 01 Jul 2015 02:25:05 GMT Authorization: OBS H4IPJX0TQTHTHEBQQCEC:75/Y4Ng1izvzc1nTGxpMXTE6ynw= Content-Length: 157 <CreateBucketConfiguration xmlns="http://obs.region.example.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 |
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.example.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.example.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 |
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.example.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.example.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 |
PUT / HTTP/1.1 User-Agent: curl/7.29.0 Host: examplebucket.obs.region.example.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
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