Blobストレージリソースの一覧

BlobサービスAPIには、アカウント内のコンテナをリストアップする操作( List Containers 操作)とコンテナ内のブロブをリストアップする操作( List Blobs 操作)が含まれます。 これらの操作には注目すべき共通点があります。

リスト操作は、要求されたリストの全部または一部を含む応答を返します。 この演算はエンティティをアルファベット順に返します。

このトピックには以下のサブトピックが含まれています。

最大結果を設定しましょう

マーカー付き部分リスト結果の取得

フィルターリストの結果

ブロブ名前空間をトラバースする

XMLレスポンス形式

Apache Arrowの応答フォーマット

最大結果を設定しましょう

リストリング操作に対して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.txtmyfolder/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 = 5NextMarker = 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.txtmyfolder/blobB.txtblobprefixレコードのレスポンス本文でまとめられており、返されるエンティティの数から単一のブロブとしてカウントされます。 このプレフィックスで始まるブロブを返すには、プレフィックスパラメータを 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 = 4NextMarker = opaqueStringが含まれています。

こちらも参照ください

コンテナーの一覧表示
BLOB を一覧表示する
ブロブサービスの概念
Versioning for the Azure Storage services