ルート コンテナーの操作

ルート コンテナーは、ストレージ アカウントの既定のコンテナーとして機能します。 ストレージ アカウントにはルート コンテナーを 1 つ作成できます。 ルート コンテナーは明示的に作成し、$root という名前を付ける必要があります。

ルート コンテナーに格納される BLOB は、ルート コンテナー名を参照することなくアドレス指定できます。つまり、ストレージ アカウント階層の最上位で BLOB を指定できます。 たとえば、ルート コンテナー内に存在する BLOB は、次の方法で参照できます。

https://myaccount.blob.core.windows.net/mywebpage.html  

ルート コンテナーの管理

ストレージ アカウントでルート コンテナーを使用するには、$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  
x-ms-blob-public-access: container  
Authorization: SharedKey myaccount:Z5043vY9MesKNh0PNtksNc9nbXSSqGHueE00JdjidOQ=  

ルート コンテナーが不要になった場合は、削除できます。

他のコンテナーと同様、ルート コンテナーには匿名のパブリック アクセスを許可できます。 コンテナーをパブリックにするには、コンテナーの作成時にヘッダーを x-ms-blob-public-access 設定するか、コンテナー ACL の設定 を既に存在した後で呼び出します。 詳細については、 コンテナーと BLOB へのアクセスの制限 を参照してください。

ルート コンテナーが存在する場合は、ストレージ アカウントに対して コンテナーの一覧表示 操作を実行したときに表示されます。

ルート コンテナーに対して List BLOBs 操作を実行すると、返された BLOB のリソース URL にルート コンテナーは表示されません。 次の要求構文は、ルート コンテナーに対して List Blobs を呼び出す方法を示しています。

GET https://myaccount.blob.core.windows.net/$root?restype=container&comp=list HTTP/1.1  

重要

ルート コンテナー内の BLOB の名前にはスラッシュ (/) を含めることはできません。

使用例

以降に紹介する各例は、コンテナー リソースと BLOB リソース (ルート コンテナーも含む) の操作方法を示しています。

GET 操作

ストレージ アカウントのコンテナーの一覧を作成する場合は、次のようになります。

GET https://myaccount.blob.core.windows.net/?comp=list  

コンテナーのプロパティを取得する場合は、次のようになります。

GET/HEAD https://myaccount.blob.core.windows.net/mycontainer?restype=container  

mycontainer という名前のコンテナー内の BLOB の一覧を作成する場合は、次のようになります。

GET https://myaccount.blob.core.windows.net/mycontainer?restype=container&comp=list  

ルート コンテナー内の BLOB の一覧を作成する場合は、次のようになります。

GET https://myaccount.blob.core.windows.net/$root?restype=container&comp=list  

myfile という名前のコンテナーから、mycontainer という名前の BLOB を読み取る場合は、次のようになります。

GET https://myaccount.blob.core.windows.net/mycontainer/myfile  

ルート コンテナーから myphoto という名前の BLOB を読み取る場合は、次のようになります。

GET https://myaccount.blob.core.windows.net/myphoto  

ルート コンテナーを明示的に参照することもできます。

GET https://myaccount.blob.core.windows.net/$root/myphoto  

ルート コンテナー内の BLOB に関する BLOB メタデータを読み取る場合は、次のようになります。

GET https://myaccount.blob.core.windows.net/myphoto?comp=metadata  

ルート コンテナーを明示的に参照することもできます。

GET https://myaccount.blob.core.windows.net/$root/myphoto?comp=metadata  

注意

ルート コンテナー内の BLOB を参照する際は、末尾にスラッシュ (/) を含めないように注意してください。 たとえば、次のような URL を指定すると、ステータス コード (Bad Request) が返されます。

https://myaccount.blob.core.windows.net/myblob/

上の例では、BLOB サービスはコンテナーの名前を myblob として読み取り、末尾のスラッシュの後に BLOB 名が続くものと想定します。 このため、BLOB 名が未指定となり、この要求は形式が無効と判断されます。

次の URL は、ルート コンテナー内の BLOB の操作に指定するものとして有効です。

https://myaccount.blob.core.windows.net/myblob

PUT 操作

mycontainer という名前のコンテナーを作成する場合は、次のようになります。

  
PUT https://myaccount.blob.core.windows.net/mycontainer?restype=container  

ルート コンテナー内に myblob という名前の BLOB を作成する場合は、次のようになります。

  
PUT https://myaccount.blob.core.windows.net/myblob  

ルート コンテナーを明示的に指定することもできます。

  
PUT https://myaccount.blob.core.windows.net/$root/myblob  

myblob という名前のコンテナー内に mycontainer という名前の BLOB を作成する場合は、次のようになります。

PUT https://myaccount.blob.core.windows.net/mycontainer/myblob  

photos/myphoto という名前のコンテナー内に mycontainer という名前の BLOB を作成する場合は、次のようになります。

PUT https://myaccount.blob.core.windows.net/mycontainer/photos/myphoto  

ルート コンテナー内の myblob という名前の BLOB に関するメタデータを設定する場合は、次のようになります。

  
PUT https://myaccount.blob.core.windows.net/myblob?comp=metadata  

DELETE 操作

mycontainer という名前のコンテナーを削除する場合は、次のようになります。

  
DELETE https://myaccount.blob.core.windows.net/mycontainer?restype=container  

ルート コンテナーを削除する場合は、次のようになります。

  
DELETE https://myaccount.blob.core.windows.net/$root?restype=container  

ルート コンテナーから myblob という名前の BLOB を削除する場合は、次のようになります。

  
DELETE https://myaccount.blob.core.windows.net/myblob  

ルート コンテナーを明示的に指定することもできます。

  
DELETE https://myaccount.blob.core.windows.net/$root/myblob  

参照

BLOB サービス リソースに対する HTTP 操作
コンテナー、BLOB、メタデータの名前付けと参照
Azure Storage サービスのバージョン管理