コンテナーの作成

Create Container 操作は、指定されたアカウントに新しいコンテナーを作成します。 同じ名前のコンテナーが既に存在する場合、操作は失敗します。

コンテナー リソースには、そのコンテナーのメタデータとプロパティが含まれます。 コンテナーに BLOB の一覧は含まれません。

Request

次に示すように、要求を Create Container 作成できます。 HTTPS を使用することをお勧めします。 mycontainer の値には、小文字のみを含めることができます。 URL で、 myaccount をストレージ アカウントの名前に置き換えます。

Method 要求 URI HTTP バージョン
PUT https://myaccount.blob.core.windows.net/mycontainer?restype=container HTTP/1.1

エミュレートされたストレージ サービス要求

エミュレートされたストレージ サービスに対して要求を行う場合は、エミュレーターのホスト名と BLOB Storage ポートを次のように127.0.0.1:10000指定し、その後にエミュレートされたストレージ アカウント名を指定します。

Method 要求 URI HTTP バージョン
PUT http://127.0.0.1:10000/devstoreaccount1/mycontainer?restype=container HTTP/1.1

詳細については、ローカルでの Azure Storage の開発に Azurite エミュレーターを使用する方法に関するページを参照してください。

URI パラメーター

要求 URI には、次の追加パラメーターを指定できます。

パラメーター 説明
timeout 省略可能。 timeout パラメーターは、秒単位で表されます。 詳細については、「BLOB Storage操作のタイムアウトを設定する」を参照してください。

要求ヘッダー

必要な要求ヘッダーと省略可能な要求ヘッダーを次の表に示します。

要求ヘッダー 説明
Authorization 必須です。 承認スキーム、アカウント名、署名を指定します。 詳細については、「Azure Storage要求を承認する」を参照してください。
Date または x-ms-date 必須です。 要求の世界協定時刻 (UTC) を指定します。 詳細については、「Azure Storage要求を承認する」を参照してください。
x-ms-version すべての承認された要求に必要です。 この要求に使用する操作のバージョンを指定します。 詳細については、「Azure Storage サービスのバージョン管理」を参照してください。
x-ms-meta-name:value 省略可能。 コンテナーにメタデータとして関連付ける名前と値のペアを指定します。 : バージョン 2009-09-19 以降では、メタデータ名は C# 識別子の名前付け規則に従う必要があります。
x-ms-blob-public-access 省略可能。 コンテナー内のデータにパブリックにアクセスできるかどうかを指定し、アクセスレベルを指定します。 次の値を指定できます。

- container: コンテナーと BLOB データの完全なパブリック読み取りアクセスを指定します。 クライアントは匿名要求を介してコンテナー内の BLOB を列挙できますが、ストレージ アカウント内のコンテナーを列挙することはできません。
- blob: BLOB のパブリック読み取りアクセスを指定します。 このコンテナー内の BLOB データは匿名要求を介して読み取ることができますが、コンテナー データは使用できません。 クライアントは、匿名要求を介してコンテナー内の BLOB を列挙できません。

このヘッダーが要求に含まれていない場合、コンテナー データはアカウント所有者にプライベートです。
x-ms-client-request-id 省略可能。 ログ記録の構成時に Azure Monitor ログに記録される 1 kibibyte (KiB) 文字制限を使用して、クライアントによって生成される不透明な値を提供します。 このヘッダーを使用して、クライアント側のアクティビティをサーバーが受け取る要求と関連付けるよう強くお勧めします。 詳細については、「Azure Blob Storageの監視」を参照してください。

要求ヘッダー (暗号化スコープ)

バージョン 2019-02-02 以降では、要求で次のヘッダーを指定して、コンテナーに既定の暗号化スコープを設定できます。 暗号化スコープを設定すると、コンテナーにアップロードされたすべての BLOB の暗号化に自動的に使用されます。

要求ヘッダー 説明
x-ms-default-encryption-scope 必須です。 コンテナーの既定値として設定する暗号化スコープ。
x-ms-deny-encryption-scope-override 必須です。 値は次 true の値または false. このヘッダーを設定すると true 、このコンテナーにアップロードされるすべての BLOB で既定の暗号化スコープが使用されます。 このヘッダーがある場合、クライアントは false既定のスコープ以外の暗号化スコープを持つ BLOB をアップロードできます。

要求本文

[なし] :

要求のサンプル

Request Syntax:  
PUT https://myaccount.blob.core.windows.net/mycontainer?restype=container HTTP/1.1  
  
Request Headers:  
x-ms-version: 2011-08-18  
x-ms-date: Sun, 25 Sep 2011 22:50:32 GMT  
x-ms-meta-Name: StorageSample  
Authorization: SharedKey myaccount:Z5043vY9MesKNh0PNtksNc9nbXSSqGHueE00JdjidOQ=  

Response

応答には、HTTP 状態コードおよび一連の応答ヘッダーが含まれています。

status code

操作が正常に終了すると、状態コード 201 (Created) が返されます。

状態コードの詳細については、 状態コードとエラー コードに関するページを参照してください。

応答ヘッダー

この操作の応答には、次の表に示すヘッダーが含まれています。 応答に追加の標準 HTTP ヘッダーが含まれる場合もあります。 すべての標準ヘッダーは 、HTTP/1.1 プロトコル仕様に準拠しています

応答ヘッダー 説明
ETag コンテナーの ETag。 要求バージョンが 2011-08-18 以降の場合、ETag 値は引用符で囲まれます。
Last-Modified コンテナーが最後に変更された日時を返します。 日付形式は RFC 1123 に従います。 詳細については、「 ヘッダー内の日付/時刻値の表現」を参照してください。

コンテナーまたはそのプロパティやメタデータを変更する操作を行うと、最終更新時刻が更新されます。 BLOB に対する操作は、コンテナーの最終更新時刻に影響しません。
x-ms-request-id 行われた要求を一意に識別します。 これを使用して、要求のトラブルシューティングを行うことができます。 詳細については、「API 操作のトラブルシューティング」を参照してください。
x-ms-version 要求の実行に使用される BLOB Storage バージョンを示します。 このヘッダーは、バージョン 2009-09-19 以降に対して行われた要求に対して返されます。
Date サービスによって生成された UTC の日付/時刻値。これは、応答が開始された時刻を示します。
x-ms-client-request-id 要求と対応する応答のトラブルシューティングに使用できます。 このヘッダーの値 x-ms-client-request-id は、要求に存在し、1024 文字以内の ASCII 文字が含まれている場合、ヘッダーの値と等しくなります。 ヘッダーが x-ms-client-request-id 要求に存在しない場合、ヘッダーは応答に存在しません。

応答本文

[なし] :

応答のサンプル

Response status:  
HTTP/1.1 201 Created  
  
Response headers:  
Transfer-Encoding: chunked  
Date: Sun, 25 Sep 2011 23:00:12 GMT  
ETag: “0x8CB14C3E29B7E82”  
Last-Modified: Sun, 25 Sep 2011 23:00:06 GMT  
x-ms-version: 2011-08-18  
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0  

承認

この操作を呼び出すことができるのはアカウント所有者のみです。

解説

コンテナーは、ストレージ アカウント内にすぐに作成されます。 あるコンテナーを別のコンテナー内に入れ子にすることはできません。

必要に応じて、ストレージ アカウントの既定コンテナーまたはルート コンテナーを作成できます。 ルート コンテナーを使用すると、コンテナー名を参照することなく、ストレージ アカウント階層の最上位から BLOB を参照できます。

ストレージ アカウントにルート コンテナーを追加するには、$root という名前のコンテナーを作成します。 次のように要求を作成します。

Request Syntax:  
PUT https://myaccount.blob.core.windows.net/$root?restype=container HTTP/1.1  
  
Request Headers:  
x-ms-version: 2011-08-18  
x-ms-date: Sun, 25 Sep 2011 22:50:32 GMT  
x-ms-meta-Name: StorageSample  
Authorization: SharedKey myaccount:Z5043vY9MesKNh0PNtksNc9nbXSSqGHueE00JdjidOQ=  

コンテナーを作成するときに、要求に 1 つ以上のメタデータ ヘッダーを含めることで、コンテナーのメタデータを指定できます。 メタデータ ヘッダーは、x-ms-meta-name:value という形式です。

呼び出されたときに Create Container 同じ名前のコンテナーが削除されている場合、サーバーは状態コード 409 (競合) を返し、コンテナーが削除されていることを示す追加のエラー情報を提供します。

関連項目

Azure Storageへの要求を承認する
状態コードとエラー コード
BLOB Storageエラー コード
コンテナー、BLOB、およびメタデータの名前と参照
BLOB リソースのプロパティとメタデータを設定および取得する
コンテナー ACL の設定