全部產品
Search
文件中心

:PutBucket

更新時間:Dec 04, 2024

調用PutBucket介面建立儲存空間(Bucket)。

注意事項

  • 要建立Bucket,您必須有oss:PutBucket許可權。具體操作,請參見為RAM使用者授權自訂的權限原則

  • 同一阿里雲帳號在同一地區(Region)內最多支援建立100個Bucket。

  • 每個地區都有對應的訪問網域名稱(Endpoint)。關於地區與訪問網域名稱對應關係的更多資訊,請參見訪問網域名稱和資料中心

  • 阿里雲帳號對同一個Bucket執行多次PutBucket請求時,第一次請求是建立Bucket,後續請求是修改Bucket的中繼資料(例如Bucket ACL)。多次PutBucket請求會有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>

要求標頭

名稱

類型

是否必選

樣本值

描述

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-hns-status

字串

disabled

指定Bucket是否開啟階層命名空間。

只能在建立Bucket時設定是否開啟階層命名空間。對於已存在的Bucket不能更改Bucket的階層命名空間狀態。

  • enabled:開啟

    Bucket開啟階層命名空間後,您可以在Bucket中進行目錄操作,例如建立目錄、刪除目錄、重新命名目錄等。

  • disabled(預設):不開啟

此介面還需要包含公用要求標頭。更多資訊,請參見公用要求標頭(Common Request Headers)

請求元素

名稱

類型

是否必選

樣本值

描述

StorageClass

字串

Standard

指定Bucket的儲存類型。取值範圍如下:

  • Standard(預設):標準儲存

  • IA:低頻訪問

  • Archive:Archive Storage

  • ColdArchive:冷Archive Storage

  • DeepColdArchive:深度冷Archive Storage

父節點: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

此介面所對應的各語言SDK如下:

錯誤碼

錯誤碼

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時設定是否開啟階層命名空間。