エクスポート (0) 印刷
すべて展開

Get Block List

更新日: 2014年2月

Get Block List 操作では、ブロック BLOB の一部としてアップロードされたブロックの一覧を取得します。

BLOB に対して保持されるブロック一覧は 2 つあります。

  • コミット後のブロック一覧: Put Block List を使用して特定の BLOB に対して正常にコミットされたブロックの一覧です。

  • コミット前のブロック一覧: Put Block を使用して BLOB に対してアップロードされ、まだコミットはされていないブロックの一覧です。これらのブロックは、BLOB との関連で Windows Azure に格納されますが、まだ BLOB の一部にはなっていません。

Get Block List を呼び出して、コミット後のブロック一覧、コミット前のブロック一覧、または両方の一覧を返すことができます。この操作を呼び出して、スナップショットのコミット後のブロック一覧を取得することもできます。

Get Block List 要求の構成は次のとおりです。HTTPS が推奨されます。myaccount はストレージ アカウントの名前に置き換えます。

 

  GET メソッド要求の URI HTTP バージョン

https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=blocklist

https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=blocklist&snapshot=<DateTime>

HTTP/1.1

エミューレートされたストレージ サービスに対する要求では、エミュレーターのホスト名と BLOB サービス ポートを 127.0.0.1:10000 と指定し、その後にエミューレートされたストレージ アカウント名を指定します。

 

  GET メソッド要求の URI HTTP バージョン

http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob?comp=blocklist

HTTP/1.1

詳細については、「開発とテストのための Azure のストレージ エミュレーター使用」を参照してください。

次の追加パラメーターを要求の URI で指定できます。

 

URI パラメーター 説明

snapshot

省略可能。snapshot パラメーターは、BLOB の一覧が存在する場合に、取得する一覧を指定する非透過的な DateTime 値です。BLOB のスナップショットの操作の詳細については、「BLOB のスナップショットの作成」を参照してください。

blocklisttype

コミット後のブロックの一覧、コミット前のブロック一覧、または両方の一覧のいずれを返すかを指定します。有効な値は committeduncommitted、または all です。このパラメーターを省略した場合、Get Block List はコミット後のブロックの一覧を返します。

timeout

省略可能。timeout パラメーターは、秒単位で表されます。詳細については、「BLOB サービス操作のタイムアウトの設定」を参照してください。

必須要求ヘッダーと省略可能な要求ヘッダーを次の表に示します。

 

要求ヘッダー 説明

Authorization

必須。認証スキーム、アカウント名、および署名を指定します。詳細については、「Azure ストレージ サービスの認証」を参照してください。

Date またはx-ms-date

必須。要求の世界協定時刻 (UTC) を指定します。詳細については、「Azure ストレージ サービスの認証」を参照してください。

x-ms-version

認証された要求では常に必須、匿名要求では省略可能です。この要求に使用する操作のバージョンを指定します。詳細については、「Azure ストレージ サービスのバージョン設定」を参照してください。

x-ms-lease-id:<ID>

省略可能。このヘッダーを指定すると、次の 2 つの条件を満たした場合にのみ操作が実行されます。

  • BLOB のリースが現在アクティブになっている。

  • 要求に指定されたリース ID が BLOB のリース ID と一致している。

このヘッダーを指定すると、2 つの条件を満たしていない場合は要求が失敗し、操作はステータス コード 412 (Precondition Failed) で失敗します。

x-ms-client-request-id

省略可能。Storage Analytics Logging が有効な場合に解析ログに記録される、クライアントで生成された非透過の値を 1 KB の文字制限付きで提供します。クライアント側のアクティビティとサーバーが受け取る要求を相互に関連付けるには、このヘッダーを使用することを強くお勧めします。詳細については、「Storage Analytics Logging について」および「Windows Azure のログ: ログを使用した、ストレージ要求の追跡」を参照してください。

なし。

次の要求 URI の例は、MOV1.avi という名前のコミット後のブロック一覧を返します。

GET http://myaccount.blob.core.windows.net/movies/MOV1.avi?comp=blocklist&blocklisttype=committed HTTP/1.1

次の要求 URI の例は、コミット後のブロック一覧とコミット前のブロック一覧の両方を返します。

GET http://myaccount.blob.core.windows.net/movies/MOV1.avi?comp=blocklist&blocklisttype=all HTTP/1.1

次の要求 URI の例は、スナップショットのコミット後のブロック一覧を返します。スナップショットはコミット後のブロックのみから構成されるため、コミット前のブロックは関連付けられていません。

GET http://myaccount.blob.core.windows.net/mycontainer/myblob?comp=blocklist&snapshot=2009-09-30T20%3a11%3a15.2735974Z

応答には HTTP ステータス コード、一連の応答ヘッダー、およびブロックの一覧を含む応答本文が含まれます。

操作が正常に終了すると、ステータス コード 200 (OK) が返されます。

ステータス コードの詳細については、「ステータス コードとエラー コード」を参照してください。

この操作の応答には、次のヘッダーが含まれています。応答に追加の標準 HTTP ヘッダーが含まれる場合もあります。標準ヘッダーはすべて、HTTP/1.1 プロトコル仕様に準拠しています。

 

応答ヘッダー 説明

Last-Modified

BLOB が最後に更新された日時。日付形式は RFC 1123 に従います。詳細については、「ヘッダーにおける日付/時刻値の表現」を参照してください。このヘッダーは、BLOB にコミット後のブロックがある場合にのみ返されます。

BLOB を変更する操作 (BLOB のメタデータまたはプロパティの更新など) を行うと、BLOB の最終更新時刻が変更されます。

ETag

BLOB の ETag。このヘッダーは、BLOB にコミット後のブロックがある場合にのみ返されます。

Content-Type

BLOB の MIME コンテンツの種類。既定値は application/xml です。

x-ms-blob-content-length

BLOB のサイズ (バイト単位)。

x-ms-request-id

このヘッダーは要求を一意に識別するので、要求のトラブルシューティングに使用できます。詳細については、「API 操作のトラブルシューティング」を参照してください。

x-ms-version

要求の実行に使用する BLOB サービスのバージョンを示します。このヘッダーはバージョン 2009-09-19 以降で行った要求に対して返されます。

このヘッダーは、コンテナーが BLOB サービスの 2009-09-19 バージョンを使用するパブリック アクセス用にマークされている場合は、バージョン指定のない匿名要求に対しても返されます。コミット後のブロック一覧のみ匿名要求を介して返すことができます。

Date

サービスによって生成される、応答の開始時刻を示す UTC 日付/時刻値。

この操作では、条件ヘッダーを使用して、指定した条件を満たした場合にのみブロック一覧を取得することもできます。詳細については、「BLOB サービス操作の条件ヘッダーの指定」を参照してください。

コミット後のブロックのみ返す要求の応答本文の形式は次のとおりです。

<?xml version="1.0" encoding="utf-8"?>
<BlockList>
  <CommittedBlocks>
    <Block>
      <Name>base64-encoded-block-id</Name>
      <Size>size-in-bytes</Size>
    </Block>
  <CommittedBlocks>
</BlockList>

コミット後のブロックとコミット前のブロックの両方を返す要求の応答本文の形式は次のとおりです。


<?xml version="1.0" encoding="utf-8"?>
<BlockList>
  <CommittedBlocks>
     <Block>
        <Name>base64-encoded-block-id</Name>
        <Size>size-in-bytes</Size>
     </Block>
  </CommittedBlocks>
  <UncommittedBlocks>
    <Block>
      <Name>base64-encoded-block-id</Name>
      <Size>size-in-bytes</Size>
    </Block>
  </UncommittedBlocks>
 </BlockList>

次の例では、blocklisttype パラメーターが committed に設定されているため、BLOB のコミット後のブロックのみが応答で返されます。

HTTP/1.1 200 OK
Transfer-Encoding: chunked
Content-Type: application/xml
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0
x-ms-request-id: 42da571d-34f4-4d3e-b53e-59a66cb36f23
Date: Sun, 25 Sep 2011 00:33:19 GMT

<?xml version="1.0" encoding="utf-8"?>
<BlockList>
  <CommittedBlocks>
    <Block>
      <Name>BlockId001</Name>
      <Size>4194304</Size>
    </Block>
    <Block>
      <Name>BlockId002</Name>
      <Size>4194304</Size>
    </Block>
  </CommittedBlocks>
</BlockList>

この例では、blocklisttype パラメーターは all に設定され、BLOB のコミット後のブロックとコミット前のブロックの両方が応答で返されます。

HTTP/1.1 200 OK
Transfer-Encoding: chunked
Content-Type: application/xml
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0
x-ms-request-id: 42da571d-34f4-4d3e-b53e-59a66cb36f23
Date: Sun, 25 Sep 2011 00:35:56 GMT

<?xml version="1.0" encoding="utf-8"?>
<BlockList>
  <CommittedBlocks>
    <Block>
      <Name>BlockId001</Name>
      <Size>4194304</Size>
    </Block>
    <Block>
      <Name>BlockId002</Name>
      <Size>4194304</Size>
    </Block>
  </CommittedBlocks>
  <UncommittedBlocks>
    <Block>
      <Name>BlockId003</Name>
      <Size>4194304</Size>
    </Block>
    <Block>
      <Name>BlockId004</Name>
      <Size>1024000</Size>
    </Block>
  </UncommittedBlocks>
</BlockList>

この次の例では、blocklisttype パラメーターが all に設定されていますが、BLOB はまだコミットされていないため、CommittedBlocks 要素は空です。

HTTP/1.1 200 OK
Transfer-Encoding: chunked
Content-Type: application/xml
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0
x-ms-request-id: 42da571d-34f4-4d3e-b53e-59a66cb36f23
Date: Wed, 14 Sep 2011 00:40:22 GMT

<?xml version="1.0" encoding="utf-8"?>
<BlockList>
  <CommittedBlocks />
  <UncommittedBlocks>
    <Block>
      <Name>BlockId001</Name>
      <Size>1024</Size>
    </Block>
    <Block>
      <Name>BlockId002</Name>
      <Size>1024</Size>
    </Block>
    <Block>
      <Name>BlockId003</Name>
      <Size>1024</Size>
    </Block>
    <Block>
      <Name>BlockId004</Name>
      <Size>1024</Size>
    </Block>
  </UncommittedBlocks>
</BlockList>

コンテナーの ACL が匿名アクセスを許可するように設定されている場合は、すべてのクライアントが Get Block List を呼び出すことができます。ただし、パブリックにアクセスできるのはコミット後のブロックのみです。コミットされていないブロックの一覧へのアクセスは、アカウント所有者と、この BLOB またはそのコンテナーを読み取るためのアクセス許可がある共有アクセス署名を使用するユーザーに制限されます。

Get Block List を呼び出して、ブロック BLOB にコミットされたブロックの一覧、まだコミットされていないブロックの一覧、またはその両方の一覧を取得できます。blocklisttype パラメーターを使用して、返すブロック一覧を指定します。

コミット後のブロック一覧は、Put Block List 操作でコミットされたのと同じ順序で返されます。コミット後のブロック一覧にブロックは複数回出現できません。

コミット前のブロック一覧を使用して、Put Block または Put Block List の呼び出しに失敗した場合にどのブロックが BLOB にないかを判断します。コミット前のブロック一覧は、最後にアップロードされたブロックから最初にアップロードされたブロックの順に返されます。ブロック ID が複数回アップロードされた場合は、最後にアップロードされたブロックのみ一覧に出現します。

BLOB がまだコミットされていない場合は、blocklisttype=all を指定して Get Block List を呼び出すとコミット前のブロックが返され、CommittedBlocks 要素は空になります。

Get Block List はブロック BLOB のみに適用されます。ページ BLOB に対して Get Block List を呼び出すと、ステータス コード 400 (Bad Request) が返されます。

表示:
© 2014 Microsoft