BLOB ストレージ リソースの一覧表示

BLOB サービス API には、アカウント内のコンテナーを一覧表示するための操作 ( コンテナーの一覧表示 操作) とコンテナー内の BLOB ( Blob の一覧表示 操作) が含まれます。 これらの操作には注目に値する共通機能があります。

リスト操作は、要求されたリストのすべてまたは一部を含む XML 応答を返します。 返されるエンティティはアルファベット順に並んでいます。

このトピックは、次のサブトピックに分かれています。

最大結果を設定する

マーカーを使用して部分的なリストの結果を取得する

リストの結果をフィルター処理する

BLOB 名前空間を走査する

XML 応答形式

最大結果を設定する

リスト操作の 1 回の呼び出しで返される結果の最大数を指定するには、要求 URI の パラメーターの maxresults 値を指定します。

要求で結果の最大数が指定されていない場合、または 5,000 を超える場合、サーバーは最大 5,000 個のアイテムを返します。 結果の最大数を 0 以下に指定すると、サービスは状態コード 400 (無効な要求) を返します。

マーカーを使用して部分的なリストの結果を取得する

特定のリソースに対して初めて一覧表示操作を実行すると、応答にすべての結果が含まれる場合や、結果のサブセットとマーカー値が含まれる場合があります。 マーカー値を後続の呼び出しに渡して、リストが完了し、マーカーが返されないまで、次の結果セット (次の結果セット) を返すことができます。

マーカー値は XML 応答の NextMarker 要素に含まれています。 NextMarker 要素が空になった時点で一覧は完了です。 の NextMarker 値は、クライアントに対して不透明な文字列値です。

後続の操作で次の結果セットを取得するには、NextMarker タグに返された値を要求 URI の marker パラメーターとして渡します。

リストの結果をフィルター処理する

結果一覧をフィルター処理するには、prefix パラメーターを使用して、要求のプレフィックス文字列を指定します。 一覧操作を実行すると、指定したプレフィックスで名前が始まるエンティティが返されます。 要求 URI に prefix パラメーターを指定すると、1 文字以上のプレフィックスを保持する Prefix 要素が応答 XML に追加されます。 たとえば、"c" の値を持つプレフィックスを指定すると、応答 XML 内でが返されます <Prefix>``c``</Prefix> 。 例については、このトピックで後述する「 コンテナーの一覧表示 」セクションを参照してください。

BLOB 名前空間を走査する

List Blobs 操作には、ユーザーが構成した区切り記号を使用して呼び出し元が BLOB 名前空間を走査できるようにする追加delimiterのパラメーターがあります。 区切り記号には単一文字または文字列を使用できます。 要求にこのパラメーターが含まれている場合、この操作によって BlobPrefix 要素が返されます。 区切り文字が出現するまで、同じサブ文字列で名前が始まるすべての BLOB の代わりに BlobPrefix 要素が返されます。 要素の BlobPrefix 値は substring+delimiter で、 substring は 1 つ以上の BLOB 名を開始する共通の部分文字列であり、 delimiterdelimiter パラメーターの値です。

BlobPrefix 値を使用して、後続の呼び出しを行って、このプレフィックスで始まる BLOB を一覧表示できます。 後続の要求の BlobPrefix の値を指定します。 この方法で、BLOB の仮想階層をファイル システムと同様にスキャンできます。 例については、このトピックで後述 する「区切り記号を使用して BLOB を一覧表示 する」を参照してください。

返される各 BlobPrefix は、最大結果にカウントされることに注意してください。

また、要求に区切り記号を含める場合は、BLOB スナップショットを一覧表示できないことに注意してください。 パラメーターの値 delimiter を指定し、パラメーターも設定 include=snapshots した場合、BLOB サービスは InvalidQueryParameter エラー (HTTP 状態コード 400 – 無効な要求) を返します。

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>  

BLOB とスナップショットを一覧表示する

この例では、 mycontainer という名前のコンテナー内の BLOB とスナップショットを返す一覧表示操作の結果を示します。 要求 URI は次のとおりです。

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

応答には BLOB とスナップショットが含まれます。

<?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>  

区切り記号を使用して BLOB を一覧表示する

この例では、 mycontainer という名前のコンテナーの下にある BLOB を返す一覧表示操作の結果を示します。 要求 URI は次のとおりです。

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

この場合、 delimiter パラメーターは として /指定されます。 応答本文には、 タグが BlobPrefix 含まれています。これは、区切り記号を含め、同じ部分文字列で始まる BLOB のグループを表します。

コンテナー内のサンプル BLOB は次のとおりです。 が 4 に設定されているため MaxResults 、最初の 4 つは最初の一覧表示操作で返されます。 myfolder/blobA.txtmyfolder/blobB.txt はタグの応答本文でBlobPrefixグループ化され、返されるエンティティの数に関して 1 つの BLOB としてカウントされることに注意してください。 このプレフィックスで始まる BLOB を返すには、prefix パラメーターが myfolder/ に設定されている後続の要求を行います。

  • blob1.txt

  • blob2.txt

  • myfolder/blobA.txt

  • myfolder/blobB.txt

  • newblob1.txt

  • newblob2.txt

次に返される BLOB は newblob2.txtです。 タグには BLOB 名が 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>  

ルート コンテナー内の BLOB を一覧表示する

ルート コンテナー内の BLOB を一覧表示するには、次の URL を使用できます。

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

ルート コンテナーに BLOB を一覧表示する場合、XML 応答本文には、BLOB URL のフィールドにルート コンテナーへの明示的な参照は含まれないことに注意してください。 ルート コンテナー内の BLOB を一覧表示する応答の例を次に示します。

  
<?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>  
  

関連項目

コンテナーの一覧表示
BLOB を一覧表示する
Blob service の概念
Azure Storage サービスのバージョン管理