BlobサービスAPIには、アカウント内のコンテナをリストアップする操作( List Containers 操作)とコンテナ内のブロブをリストアップする操作( List Blobs 操作)が含まれます。 これらの操作には注目すべき共通点があります。
リスト操作は、要求されたリストの全部または一部を含む応答を返します。 この演算はエンティティをアルファベット順に返します。
このトピックには以下のサブトピックが含まれています。
最大結果を設定しましょう
リストリング操作に対して1回の呼び出しで返される最大結果数を指定するには、リクエストURIの maxresults パラメータの値を指定します。
リクエストで最大結果数が指定されていなかったり、5,000を超える場合、サーバーは最大5,000項目まで返します。 結果の最大数を0以下に指定すると、サービスはステータスコード400(悪いリクエスト)を返します。
マーカー付き部分リスト結果の取得
特定のリソースに対して初めてリストティング操作が行われる際、レスポンスにはすべての結果が含まれている場合もあれば、結果の一部とマーカー値が含まれている場合もあります。 マーカー値は次の呼び出しに渡され、次の結果セット(そして次のセット)を返すためにリストが完了しマーカーが返されなくなります。
マーカー値は NextMarkerとして返されます。
XML応答において、NextMarkerは応答本文の要素です。
Apache Arrow List Blobsの応答では、NextMarkerはスキーマメタデータのフィールドです。
NextMarkerが空なら、リスティングは完了します。
NextMarkerの値はクライアントにとって不透明な文字列の数値です。
次の操作で結果のセットを返すには、リクエストURIのmarkerパラメータとしてNextMarkerで返された値を渡します。
フィルターリストの結果
結果のリストは、リクエストのプレフィックス文字列を指定することで、 prefix パラメータを使ってフィルタリングできます。 リスト操作は、そのプレフィックスで始まる名前を持つエンティティを返します。 リクエストURI上で prefix パラメータが指定されている場合、レスポンスXMLにはプレフィックス文字を含む Prefix 要素が含まれます。 例えば、「c」の値を持つプレフィックスを指定すると、応答XML内で <Prefix>``c``</Prefix> 返されます。 例については、このトピックの後半にある 「リストコンテナ」 セクションを参照してください。
ブロブ名前空間をトラバースする
List Blobs操作には、ユーザーが設定した区切り文字を使ってブロブ名前空間を走査できる追加のdelimiterパラメータがあります。 区切り記号は、1 文字でも文字列でもかまいません。 要求にこのパラメーターが含まれている場合、操作は BlobPrefix 要素を返します。
BlobPrefix要素は、区切り文字の出現まで同じ部分文字列で始まる名前のブロブの代わりに返されます。
BlobPrefix要素の値はサブ文字列+区切り符であり、ここで部分文字列は1つ以上のブロブ名を始める共通部分文字列、区切り符は区切り符パラメータの値です。
BlobPrefix の値を使用して、後続の呼び出しを行って、このプレフィックスで始まる BLOB を一覧表示できます。 その後のリクエストのために BlobPrefix の値を指定してください。 この方法では、BLOB の仮想階層を、ファイル システムであるかのように走査できます。 例として、このトピックの後半で区 切り符付きのリストブロブを参照してください 。
返された各 BlobPrefix が最大結果にカウントされることに注意してください。
また、リクエストに区切り符を含めるとブロブスナップショットをリストアップできないことも覚えておいてください。
delimiterパラメータの値を指定し、include=snapshotsパラメータも設定すると、BlobサービスはInvalidQueryParameterエラー(HTTPステータスコード400 – Bad Request)を返します。
XMLレスポンス形式
リスト出力はXML文書で、その形式はこのトピックの後のコード例に示されるものに似ています。
レスポンスボディには、リクエストURI上で指定されたすべてのパラメータの値がレスポンスボディ内の要素として含まれます。
Last-Modified要素で返されるDateTime値はRFC 1123形式です。
DateTime値の詳細については、「ヘッダーでの日付/時刻値の表現」を参照してください。
コンテナーの一覧表示
この例は、2つのコンテナを返すリストイング操作の結果を示しています。 リクエストURIは以下の通りです:
GET https://myaccount.blob.core.windows.net/?comp=list&prefix=c&maxresults=3&include=metadata
リストをフィルタリングするために接頭辞「c」が指定されました。 返送できる結果の最大数は3つに設定されていました。
NextMarkerタグは、次の出品操作で返送されるコンテナの名前を示します。
<?xml version="1.0" encoding="utf-8"?>
<EnumerationResults AccountName="https://myaccount.blob.core.windows.net/">
<Prefix>c</Prefix>
<MaxResults>3</MaxResults>
<Containers>
<Container>
<Name>container1</Name>
<Url>https://myaccount.blob.core.windows.net/container1</Url>
<Properties>
<Last-Modified>Sun, 27 Sep 2009 18:09:03 GMT</Last-Modified>
<Etag>0x8CAE7D0C4AF4487</Etag>
</Properties>
<Metadata>
<Color>orange</Color>
<ContainerNumber>01</ContainerNumber>
<SomeMetadataName>SomeMetadataValue</SomeMetadataName>
</Metadata>
</Container>
<Container>
<Name>container2</Name>
<Url>https://myaccount.blob.core.windows.net/container2</Url>
<Properties>
<Last-Modified>Sun, 27 Sep 2009 17:26:40 GMT</Last-Modified>
<Etag>0x8CAE7CAD8C24928</Etag>
</Properties>
<Metadata>
<Color>pink</Color>
<ContainerNumber>02</ContainerNumber>
<SomeMetadataName>SomeMetadataValue</SomeMetadataName>
</Metadata>
</Container>
<Container>
<Name>container3</Name>
<Url>https://myaccount.blob.core.windows.net/container3</Url>
<Properties>
<Last-Modified>Sun, 27 Sep 2009 17:26:40 GMT</Last-Modified>
<Etag>0x8CAE7CAD8EAC0BB</Etag>
</Properties>
<Metadata>
<Color>brown</Color>
<ContainerNumber>03</ContainerNumber>
<SomeMetadataName>SomeMetadataValue</SomeMetadataName>
</Metadata>
</Container>
</Containers>
<NextMarker>container4</NextMarker>
</EnumerationResults>
リストブロブとスナップショット
この例は 、mycontainerというコンテナ内でブロブとスナップショットを返すリストリング操作の結果を示しています。 リクエストURIは以下の通りです:
GET https://myaccount.blob.core.windows.net/mycontainer?restype=container&comp=list&include=snapshots&include=metadata
応答にはブロブとスナップショットの両方が含まれます:
<?xml version="1.0" encoding="utf-8"?>
<EnumerationResults ContainerName="https://myaccount.blob.core.windows.net/mycontainer">
<Blobs>
<Blob>
<Name>blob1.txt</Name>
<Url>https://myaccount.blob.core.windows.net/mycontainer/blob1.txt</Url>
<Properties>
<Last-Modified>Wed, 09 Sep 2009 09:20:02 GMT</Last-Modified>
<Etag>0x8CBFF45D8A29A19</Etag>
<Content-Length>100</Content-Length>
<Content-Type>text/html</Content-Type>
<Content-Encoding />
<Content-Language>en-US</Content-Language>
<Content-MD5 />
<Cache-Control>no-cache</Cache-Control>
<BlobType>BlockBlob</BlobType>
<LeaseStatus>unlocked</LeaseStatus>
</Properties>
<Metadata>
<Color>blue</Color>
<BlobNumber>01</BlobNumber>
<SomeMetadataName>SomeMetadataValue</SomeMetadataName>
</Metadata>
</Blob>
<Blob>
<Name>blob2.txt</Name>
<Snapshot>2009-09-09T09:20:03.0427659Z</Snapshot>
<Url>https://myaccount.blob.core.windows.net/mycontainer/blob2.txt?snapshot=2009-09-09T09%3a20%3a03.0427659Z</Url>
<Properties>
<Last-Modified>Wed, 09 Sep 2009 09:20:02 GMT</Last-Modified>
<Etag>0x8CBFF45D8B4C212</Etag>
<Content-Length>5000</Content-Length>
<Content-Type>application/octet-stream</Content-Type>
<Content-Encoding>gzip</Content-Encoding>
<Content-Language />
<Content-MD5 />
<Cache-Control />
<BlobType>BlockBlob</BlobType>
</Properties>
<Metadata>
<Color>green</Color>
<BlobNumber>02</BlobNumber>
<SomeMetadataName>SomeMetadataValue</SomeMetadataName>
<x-ms-invalid-name>nasdf$@#$$</x-ms-invalid-name>
</Metadata>
</Blob>
<Blob>
<Name>blob2.txt</Name>
<Snapshot>2009-09-09T09:20:03.1587543Z</Snapshot>
<Url>https://myaccount.blob.core.windows.net/mycontainer/blob2.txt?snapshot=2009-09-09T09%3a20%3a03.1587543Z</Url>
<Properties>
<Last-Modified>Wed, 09 Sep 2009 09:20:02 GMT</Last-Modified>
<Etag>0x8CBFF45D8B4C212</Etag>
<Content-Length>5000</Content-Length>
<Content-Type>application/octet-stream</Content-Type>
<Content-Encoding>gzip</Content-Encoding>
<Content-Language />
<Content-MD5 />
<Cache-Control />
<BlobType>BlockBlob</BlobType>
</Properties>
<Metadata>
<Color>green</Color>
<BlobNumber>02</BlobNumber>
<SomeMetadataName>SomeMetadataValue</SomeMetadataName>
</Metadata>
</Blob>
<Blob>
<Name>blob2.txt</Name>
<Url>https://myaccount.blob.core.windows.net/mycontainer/blob2.txt</Url>
<Properties>
<Last-Modified>Wed, 09 Sep 2009 09:20:02 GMT</Last-Modified>
<Etag>0x8CBFF45D8B4C212</Etag>
<Content-Length>5000</Content-Length>
<Content-Type>application/octet-stream</Content-Type>
<Content-Encoding>gzip</Content-Encoding>
<Content-Language />
<Content-MD5 />
<Cache-Control />
<BlobType>BlockBlob</BlobType>
<LeaseStatus>unlocked</LeaseStatus>
</Properties>
<Metadata>
<Color>green</Color>
<BlobNumber>02</BlobNumber>
<SomeMetadataName>SomeMetadataValue</SomeMetadataName>
</Metadata>
</Blob>
<Blob>
<Name>blob3.txt</Name>
<Url>https://myaccount.blob.core.windows.net/mycontainer/blob3.txt</Url>
<Properties>
<Last-Modified>Wed, 09 Sep 2009 09:20:03 GMT</Last-Modified>
<Etag>0x8CBFF45D911FADF</Etag>
<Content-Length>16384</Content-Length>
<Content-Type>image/jpeg</Content-Type>
<Content-Encoding />
<Content-Language />
<Content-MD5 />
<Cache-Control />
<x-ms-blob-sequence-number>3</x-ms-blob-sequence-number>
<BlobType>PageBlob</BlobType>
<LeaseStatus>locked</LeaseStatus>
</Properties>
<Metadata>
<Color>yellow</Color>
<BlobNumber>03</BlobNumber>
<SomeMetadataName>SomeMetadataValue</SomeMetadataName>
</Metadata>
</Blob>
</Blobs>
<NextMarker />
</EnumerationResults>
区切り符付きのリストブロブ
この例は、 mycontainerという名前のコンテナの下にブロブを返すリスト操作の結果を示しています。 リクエストURIは以下の通りです:
GET https://myaccount.blob.core.windows.net/mycontainer?restype=container&comp=list&delimiter=/&maxresults=4
この場合、 delimiter パラメータは /として指定されます。 応答本体には BlobPrefix タグが含まれており、これは同じ部分文字列で始まるブロブのグループを表し、区切り符も含まれます。
容器の下にあるサンプルの塊は以下の通りです。 最初の4つは最初のリストリング操作で返されます。なぜなら MaxResults が4に設定されているからです。
myfolder/blobA.txt とmyfolder/blobB.txt は、BlobPrefixタグのレスポンス本文でまとめられており、返されるエンティティの数から単一のブロブとしてカウントされます。 このプレフィックスで始まるブロブを返すには、プレフィックスパラメータを myfolder/に設定した次のリクエストを行ってください。
blob1.txt
blob2.txt
myfolder/blobA.txt
myfolder/blobB.txt
newblob1.txt
newblob2.txt
次に返されるブロブは newblob2.txtです。 ブロブ名は NextMarker タグに記載されています。
<?xml version="1.0" encoding="utf-8"?>
<EnumerationResults ContainerName="https://myaccount.blob.core.windows.net/mycontainer">
<MaxResults>4</MaxResults>
<Blobs>
<Blob>
<Name>blob1.txt</Name>
<Url>https://myaccount.blob.core.windows.net/mycontainer/blob1.txt</Url>
<Properties>
<Last-Modified>Sun, 27 Sep 2009 18:41:57 GMT</Last-Modified>
<Etag>0x8CAE7D55D050B8B</Etag>
<Content-Length>8</Content-Length>
<Content-Type>text/html</Content-Type>
<Content-Encoding />
<Content-Language>en-US</Content-Language>
<Content-MD5 />
<Cache-Control>no-cache</Cache-Control>
<BlobType>BlockBlob</BlobType>
<LeaseStatus>unlocked</LeaseStatus>
<Properties>
</Blob>
<Blob>
<Name>blob2.txt</Name>
<Url>https://myaccount.blob.core.windows.net/mycontainer/blob2.txt</Url>
<Properties>
<Last-Modified>Sun, 27 Sep 2009 12:18:50 GMT</Last-Modified>
<Etag>0x8CAE7D55CF6C339</Etag>
<Content-Length>100</Content-Length>
<Content-Type>text/html</Content-Type>
<Content-Encoding />
<Content-Language>en-US</Content-Language>
<Content-MD5 />
<Cache-Control>no-cache</Cache-Control>
<BlobType>BlockBlob</BlobType>
<LeaseStatus>unlocked</LeaseStatus>
</Properties>
</Blob>
<BlobPrefix>
<Name>myfolder/</Name>
</BlobPrefix>
<Blob>
<Name>newblob1.txt</Name>
<Url>https://myaccount.blob.core.windows.net/mycontainer/newblob1.txt</Url>
<Properties>
<Last-Modified>Sun, 27 Sep 2009 16:31:57 GMT</Last-Modified>
<Etag>0x8CAE7D55CF6C339</Etag>
<Content-Length>25</Content-Length>
<Content-Type>text/html</Content-Type>
<Content-Encoding />
<Content-Language>en-US</Content-Language>
<Content-MD5 />
<Cache-Control>no-cache</Cache-Control>
<BlobType>BlockBlob</BlobType>
<LeaseStatus>unlocked</LeaseStatus>
</Properties>
</Blob>
</Blobs>
<NextMarker>newblob2.txt</NextMarker>
</EnumerationResults>
ルートコンテナ内のリストブロブ
ルートコンテナ内のブロブをリストアップするには、以下のURLを使用できます:
https://myaccount.blob.core.windows.net/$root?restype=container&comp=list&maxresults=10
ルートコンテナにブロブをリストアップする際、XMLレスポンス本にはブロブの URL フィールドにルートコンテナへの明示的な参照が含まれていないことを覚えておいてください。 ルートコンテナ内のブロブを一覧にしたサンプルレスポンスはこちらです:
<?xml version="1.0" encoding="utf-8"?>
<EnumerationResults ContainerName="https://myaccount.blob.core.windows.net/%24root">
<MaxResults>10</MaxResults>
<Blobs>
<Blob>
<Name>rootblob1.txt</Name>
<Url>https://myaccount.blob.core.windows.net/rootblob1.txt</Url>
<Properties>
<Last-Modified>Sun, 27 Sep 2009 18:41:48 GMT</Last-Modified>
<Etag>0x8CAE7D55D050B8B</Etag>
<Content-Length>25</Content-Length>
<Content-Type>text/html</Content-Type>
<Content-Encoding />
<Content-Language>en-US</Content-Language>
<Content-MD5 />
<Cache-Control>no-cache</Cache-Control>
<BlobType>BlockBlob</BlobType>
<LeaseStatus>unlocked</LeaseStatus>
</Properties>
</Blob>
<Blob>
<Name>rootblob2.txt</Name>
<Url>https://myaccount.blob.core.windows.net/rootblob2.txt</Url>
<Properties>
<Last-Modified>Sun, 27 Sep 2009 18:45:57 GMT</Last-Modified>
<Etag>0x8CAE7D55CF6C339</Etag>
<Content-Length>14</Content-Length>
<Content-Type>text/plain; charset=UTF-8</Content-Type>
<Content-Encoding />
<Content-Language>en-US</Content-Language>
<Content-MD5 />
<Cache-Control>no-cache</Cache-Control>
<BlobType>BlockBlob</BlobType>
<LeaseStatus>unlocked</LeaseStatus>
</Properties>
</Blob>
</Blobs>
</EnumerationResults>
Apache Arrowの応答フォーマット
バージョン2026-06-06以降、 List Blobs 操作は Apache Arrow 形式の結果も返すことができます。 リストコンテナ操作は現時点でApache Arrowをサポートしていません。
Note
List Blobsに対するApache Arrowのサポートは現在パブリックプレビュー中です。
リスト出力はバイナリのApache Arrowストリームです。 このトピックの各例では、レコードバッチをテーブルとして示しており、各行がブロブまたはブロブプレフィックス、各列がフィールドとなっています。
Last-Modifiedなどのタイムスタンプフィールドは、ここにISO 8601形式で示されています。 各テーブルの後にはスキーマメタデータからの NumberOfRecords 値と NextMarker の値が続きます。
Apache Arrow形式でのブロブとスナップショットのリスト
この例は 、mycontainerというコンテナ内でブロブとスナップショットを返すリストリング操作の結果を示しています。 リクエストURIは以下の通りです:
GET https://myaccount.blob.core.windows.net/mycontainer?restype=container&comp=list&include=snapshots&include=metadata
応答にはブロブとスナップショットの両方が含まれます:
Name |
ResourceType |
Snapshot |
Last-Modified |
Etag |
Content-Length |
Content-Type |
Content-Encoding |
Content-Language |
Cache-Control |
x-ms-blob-sequence-number |
BlobType |
LeaseStatus |
Metadata |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| blob1.txt | BLOB | null 値 | 2009-09-09T09:20:02Z | 0x8CBFF45D8A29A19 | 100 | text/html | null 値 | en-US | no-cache | null 値 | BlockBlob | 解除された | {色:青、BlobNumber:01、SomeMetadataName: SomeMetadataValue} |
| blob2.txt | BLOB | 2009-09-09T09:20:03.0427659Z | 2009-09-09T09:20:02Z | 0x8CBFF45D8B4C212 | 5000 | application/octet-stream | gzip | null 値 | null 値 | null 値 | BlockBlob | null 値 | {色:緑、BlobNumber:02、SomeMetadataName: SomeMetadataValue, x-ms-invalid-name: nasdf$@#$$} |
| blob2.txt | BLOB | 2009-09-09T09:20:03.1587543Z | 2009-09-09T09:20:02Z | 0x8CBFF45D8B4C212 | 5000 | application/octet-stream | gzip | null 値 | null 値 | null 値 | BlockBlob | null 値 | {色:緑、BlobNumber:02、SomeMetadataName: SomeMetadataValue} |
| blob2.txt | BLOB | null 値 | 2009-09-09T09:20:02Z | 0x8CBFF45D8B4C212 | 5000 | application/octet-stream | gzip | null 値 | null 値 | null 値 | BlockBlob | 解除された | {色:緑、BlobNumber:02、SomeMetadataName: SomeMetadataValue} |
| blob3.txt | BLOB | null 値 | 2009-09-09T09:20:03Z | 0x8CBFF45D911FADF | 16384 | image/jpeg | null 値 | null 値 | null 値 | 3 | PageBlob | ロックされている | {色:黄色、ブロブ番号:03、SomeMetadataName: SomeMetadataValue} |
スキーマのメタデータには NumberOfRecords = 5 と NextMarker = emptyが含まれており、これはリストが完了したことを示します。
Apache Arrow形式の区切り符付きブロブ一覧
この例は、 mycontainerという名前のコンテナの下にブロブを返すリスト操作の結果を示しています。 リクエストURIは以下の通りです:
GET https://myaccount.blob.core.windows.net/mycontainer?restype=container&comp=list&delimiter=/&maxresults=4
この場合、 delimiter パラメータは /として指定されます。 応答体には、同じ部分文字列で始まるブロブのグループを表す ResourceTypeblobprefix のレコードが含まれており、区切り符も含まれます。
容器の下にあるサンプルの塊は以下の通りです。 最初の4つは最初のリストリング操作で返されます。なぜなら MaxResults が4に設定されているからです。
myfolder/blobA.txt とmyfolder/blobB.txt はblobprefixレコードのレスポンス本文でまとめられており、返されるエンティティの数から単一のブロブとしてカウントされます。 このプレフィックスで始まるブロブを返すには、プレフィックスパラメータを myfolder/に設定した次のリクエストを行ってください。
blob1.txt
blob2.txt
myfolder/blobA.txt
myfolder/blobB.txt
newblob1.txt
newblob2.txt
newblob2.txt は、次のリクエストでmarkerパラメータとしてopaqueStringが渡されたときに返される次のブロブとなります。
Name |
ResourceType |
Last-Modified |
Etag |
Content-Length |
Content-Type |
Content-Language |
Cache-Control |
BlobType |
LeaseStatus |
|---|---|---|---|---|---|---|---|---|---|
| blob1.txt | BLOB | 2009-09-27T18:41:57Z | 0x8CAE7D55D050B8B | 八 | text/html | en-US | no-cache | BlockBlob | 解除された |
| blob2.txt | BLOB | 2009-09-27T12:18:50Z | 0x8CAE7D55CF6C339 | 100 | text/html | en-US | no-cache | BlockBlob | 解除された |
| 私のフォルダ/ | ブロブプレフィックス | null 値 | null 値 | null 値 | null 値 | null 値 | null 値 | null 値 | null 値 |
| newblob1.txt | BLOB | 2009-09-27T16:31:57Z | 0x8CAE7D55CF6C339 | 25 | text/html | en-US | no-cache | BlockBlob | 解除された |
スキーマのメタデータには NumberOfRecords = 4 と NextMarker = opaqueStringが含まれています。
こちらも参照ください
コンテナーの一覧表示
BLOB を一覧表示する
ブロブサービスの概念
Versioning for the Azure Storage services