ルート コンテナーの操作
ルート コンテナーは、ストレージ アカウントの既定のコンテナーとして機能します。 ストレージ アカウントにはルート コンテナーを 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 サービスのバージョン管理