Get Block List

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

BLOB には、次の 2 つのブロックリストが保持されています。

  • コミットされたブロック リスト: Put Block List を使用して、指定された BLOB に正常にコミットされた ブロックの一覧

  • コミットされていないブロック一覧: Put Block を使用して BLOB にアップロードされたが、まだコミットされていないブロックの一覧。 これらのブロックは、BLOB と関連付けて 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>

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

エミュレートされたストレージ サービス要求

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

GET メソッド要求 URI HTTP バージョン
http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob?comp=blocklist HTTP/1.1

詳細については、ローカルでの Azure Storage の開発に Azurite エミュレーターを使用する方法に関するページを参照してください。

URI パラメーター

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

URI パラメーター 説明
snapshot 省略可能。 snapshot パラメーターは、BLOB の一覧が存在する場合に、取得する一覧を指定する非透過的な DateTime 値です。 BLOB スナップショットの操作の詳細については、「BLOB のスナップショットを作成する」を参照してください。
versionid バージョン 2019-12-12 以降では省略可能です。 パラメーターは versionid 不透明 DateTime な値であり、存在する場合は、取得する BLOB のバージョンを指定します。
blocklisttype コミット後のブロックの一覧、コミット前のブロック一覧、または両方の一覧のいずれを返すかを指定します。 有効な値は、committeduncommitted、または all です。 このパラメーターを省略した場合、Get Block List はコミット後のブロックの一覧を返します。
timeout 省略可能。 timeout パラメーターは、秒単位で表されます。 詳細については、「 Blob Storage 操作のタイムアウトを設定する」を参照してください。

要求ヘッダー

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

要求ヘッダー 説明
Authorization 必須。 承認スキーム、アカウント名、署名を指定します。 詳細については、「Azure Storage への要求を承認する」をご覧ください。
Date または x-ms-date 必須。 要求に対して協定世界時 (UTC) を指定します。 詳細については、「Azure Storage への要求を承認する」をご覧ください。
x-ms-version すべての承認された要求に必要です。匿名要求の場合は省略可能です。 この要求に使用する操作のバージョンを指定します。 詳細については、「Azure Storage サービスのバージョン管理」を参照してください。
x-ms-lease-id:<ID> 省略可能。 このヘッダーを指定すると、次の 2 つの条件を満たした場合にのみ操作が実行されます。

- BLOB のリースは現在アクティブです。
- 要求で指定されたリース ID は、BLOB のリース ID と一致します。

このヘッダーが指定されていて、いずれかの条件が満たされていない場合、要求は失敗し、状態コード 412 (前提条件が失敗) で操作が失敗します。
x-ms-client-request-id 省略可能。 ログ記録の構成時にログに記録される 1 kibibyte (KiB) 文字制限を使用して、クライアントによって生成された不透明な値を提供します。 このヘッダーを使用して、クライアント側のアクティビティとサーバーが受信する要求を関連付けるよう強くお勧めします。 詳細については、「Azure Blob Storageの監視」を参照してください。

この操作では、条件ヘッダーを使用して、指定した条件を満たした場合にのみ操作を実行することもできます。 詳細については、「 Blob Storage 操作の条件付きヘッダーを指定する」を参照してください。

要求本文

[なし] :

要求のサンプル

次の要求 URI の例では、MOV1.avi という名前の BLOB のコミット済みブロックリストが返されます。

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

Response

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

status code

操作に成功すると、状態コード 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 要求の実行に使用されたサービス バージョンを示します。 このヘッダーはバージョン 2009-09-19 以降で行った要求に対して返されます。

Blob Storage バージョン 2009-09-19 を使用してコンテナーがパブリック アクセス用にマークされている場合、このヘッダーは、指定されたバージョンのない匿名要求にも返されます。 : 匿名要求を介して返すことができるのは、コミットされたブロックリストのみです。
Date サービスによって生成される UTC 日付/時刻値。応答が開始された時刻を示します。
x-ms-client-request-id 要求と対応する応答のトラブルシューティングに使用できます。 このヘッダーの値 x-ms-client-request-id は、要求に存在し、値に 1,024 文字以下の ASCII 文字が含まれている場合、ヘッダーの値と同じです。 ヘッダーが x-ms-client-request-id 要求に存在しない場合は、応答に存在しません。

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

応答本文

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

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

承認

Azure Storage でデータ アクセス操作を呼び出す場合は、承認が必要です。 以下で説明するように、操作を Get Block List 承認できます。

Azure Storage では、Microsoft Entra IDを使用して BLOB データへの要求を承認することがサポートされています。 Microsoft Entra IDでは、Azure ロールベースのアクセス制御 (Azure RBAC) を使用して、セキュリティ プリンシパルにアクセス許可を付与できます。 セキュリティ プリンシパルには、ユーザー、グループ、アプリケーション サービス プリンシパル、または Azure マネージド ID を指定できます。 セキュリティ プリンシパルは、OAuth 2.0 トークンを返すためにMicrosoft Entra IDによって認証されます。 その後、そのトークンを、Blob service に対する要求を認可するために使用できます。

Microsoft Entra IDを使用した承認の詳細については、「Microsoft Entra IDを使用して BLOB へのアクセスを承認する」を参照してください。

アクセス許可

Microsoft Entraユーザー、グループ、またはサービス プリンシパルが操作を呼び出Get Block Listすために必要な RBAC アクションと、このアクションを含む最小限の特権を持つ組み込み Azure RBAC ロールを次に示します。

Azure RBAC を使用したロールの割り当ての詳細については、「 BLOB データにアクセスするための Azure ロールの割り当て」を参照してください。

注釈

を呼び出 Get Block List して、ブロック BLOB にコミットされたブロックの一覧、まだコミットされていないブロックの一覧、または両方のリストを返します。 blocklisttype パラメーターを使用して、返すブロック一覧を指定します。 コミットされたブロックのリストは、 Put Block List 操作によってコミットされた順序と同じ順序で返されます。

コミットされていないブロックリストを使用すると、呼び出しが失敗した場合やPut Block List失敗した場合に、BLOB に欠落しているブロックをPut Block特定できます。 コミットされていないブロックの一覧はアルファベット順に返されます。 ブロック ID が複数回アップロードされた場合は、最後にアップロードされたブロックのみ一覧に出現します。

注意

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

Get Block List は、コミットされていないブロックの一覧を読み取るときにコンカレンシーをサポートしません。 他の Get Block List 読み取り操作よりも要求の最大レートが低い、 blocklisttype=uncommitted または blocklisttype=all に対する呼び出し。 読み取り操作のターゲット スループットの詳細については、「 Azure Storage のスケーラビリティとパフォーマンスのターゲット」を参照してください。

バージョン 2019-12-12 の時点で、ブロック BLOB には最大 4000 メビバイト (MiB) のブロックを含めることができます。 符号付き 32 ビット整数を使用してブロック サイズを表すアプリケーションを保護するために、2019-12-12 より前の REST バージョンで 100 MiB を超えるブロックを含むブロック BLOB を呼び出 Get Block List すと、状態コード 409 (競合) が発生します。

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

Get Block List アーカイブされたブロック BLOB では失敗します。

請求

価格要求は、Blob Storage REST API を介して直接、または Azure Storage クライアント ライブラリから Blob Storage API を使用するクライアントから送信できます。 これらの要求では、トランザクションあたりの料金が発生します。 トランザクションの種類は、アカウントの課金方法に影響します。 たとえば、読み取りトランザクションは、書き込みトランザクションとは異なる課金カテゴリに計上されます。 次の表は、ストレージ アカウントの種類に基づく要求の課金カテゴリ Get Block List を示しています。

操作 ストレージ アカウントの種類 課金カテゴリ
Get Block List Premium ブロック BLOB
Standard 汎用 v2
その他の操作
Get Block List Standard 汎用 v1 操作を読み取ります。

指定した課金カテゴリの価格については、「Azure Blob Storage価格」を参照してください。

こちらもご覧ください

Azure Storage の状態とエラー コードに対する要求を承認する Blob Storage エラー コード Blob Storage操作のタイムアウトを設定する