セールス: 1-800-867-1380

Get Blob

更新日: 2014年6月

Get Blob 操作は、メタデータやプロパティなどの BLOB をシステムから読み取りまたはダウンロードします。Get Blob を呼び出してスナップショットを読み取ることもできます。

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

 

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

https://myaccount.blob.core.windows.net/mycontainer/myblob

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

HTTP/1.0

HTTP/1.1

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

 

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

http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob

HTTP/1.0

HTTP/1.1

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

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

 

Parameter 説明

snapshot

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

timeout

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

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

 

要求ヘッダー 説明

Authorization

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

Date またはx-ms-date

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

x-ms-version

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

Range

省略可能。指定した範囲内の BLOB のバイトのみ返します。

x-ms-range

省略可能。指定した範囲内の BLOB のバイトのみ返します。Rangex-ms-range の両方が指定されている場合、サービスは x-ms-range の値を使用します。どちらも指定しない場合は、BLOB 全体の内容が返されます。詳細については、「BLOB サービス操作の範囲ヘッダーの指定」を参照してください。

x-ms-lease-id:<ID>

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

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

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

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

x-ms-range-get-content-md5: true

省略可能。このヘッダーが true に設定され、Range ヘッダーと共に指定されている場合、サービスは、範囲のサイズが 4 MB 以下である限り、範囲の MD5 ハッシュを返します。

このヘッダーが指定され、Range ヘッダーが指定されていない場合、サービスはステータス コード 400 (Bad Request) を返します。

範囲のサイズが 4 MB を超えているときにこのヘッダーが true に設定されると、サービスはステータス コード 400 (Bad Request) を返します。

Origin

省略可能。要求の送信元を指定します。このヘッダーが存在する場合、応答のクロス オリジン リソース共有 (CORS) ヘッダーになります。

x-ms-client-request-id

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

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

なし。

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

BLOB 全体を読み取る操作が正常に終了すると、ステータス コード 200 (OK) が返されます。

指定した範囲を読み取る操作が正常に終了すると、ステータス コード 206 (Partial Content) が返されます。

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

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

 

構文 説明

Last-Modified

BLOB が最後に更新された日時。日付形式は RFC 1123 に従います。

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

x-ms-meta-name:value

この BLOB にユーザー定義メタデータとして関連付けられた名前と値のペアのセット。

Content-Length

応答本文に含まれるバイト数。

Content-Type

BLOB に対して指定されたコンテンツの種類。既定のコンテンツの種類は application/octet-stream です。

Content-Range

Range 要求ヘッダーを設定することで、クライアントが BLOB のサブセットを要求した場合に返されるバイトの範囲を示します。

ETag

エンティティ タグに含まれる値は、クライアントが If-Modified 要求ヘッダーを使用して条件付き GET 操作を実行するときに使用できます。要求バージョンが 2011-08-18 またはそれ以降である場合、ETag 値は引用符で囲まれます。

Content-MD5

BLOB に MD5 ハッシュがあり、この Get Blob 操作で BLOB 全体を読み取る場合は、クライアントがメッセージ コンテンツの整合性をチェックできるようにこの応答ヘッダーが返されます。

バージョン 2012-02-12 以降では、Put Blob は、Put Blob 要求に MD5 ヘッダーが含まれない場合でも、ブロック BLOB の MD5 ハッシュ値を設定します。

要求で指定の範囲を読み取るように指定されており、x-ms-range-get-content-md5true に設定されている場合、範囲サイズが 4 MB 以下である限り、要求は範囲の MD5 ハッシュを返します。

これらの条件セットのいずれも真でない場合は、Content-MD5 ヘッダーの値は返されません。

x-ms-range-get-content-md5Range ヘッダーなしで指定されている場合、サービスはステータス コード 400 (Bad Request) を返します。

範囲のサイズが 4 MB を超えているときに x-ms-range-get-content-md5true に設定されると、サービスはステータス コード 400 (Bad Request) を返します。

Content-Encoding

このヘッダーは、Content-Encoding 要求ヘッダーに対して指定された値を返します。

Content-Language

このヘッダーは、Content-Language 要求ヘッダーに対して指定された値を返します。

Cache-Control

このヘッダーは、BLOB に対して指定されていた場合に返されます。

Content-Disposition

バージョン 2013-08-15 以降で行った要求に対して返されます。このヘッダーは、x-ms-blob-content-disposition ヘッダーに対して指定された値を返します。

Content-Disposition 応答ヘッダー フィールドは、応答ペイロードを処理する方法に関する追加情報を伝達し、追加のメタデータをアタッチするために使用することもできます。たとえば、attachment に設定した場合、ユーザー エージェントで応答を表示する代わりに、指定された BLOB 名以外のファイル名が設定された [名前を付けて保存] ダイアログ ボックスを表示することを示します。

x-ms-blob-sequence-number

ページ BLOB の現在のシーケンス番号。

このヘッダーは、ブロック BLOB に対しては返されません。

x-ms-blob-type: <BlockBlob,PageBlob>

BLOB の種類を返します。

x-ms-copy-completion-time:<datetime>

この操作は、バージョン 2012-02-12 以降で使用できます。この BLOB をコピー先 BLOB として最後に試行された Copy Blob 操作の完了時刻。この値は、完了、中止、または失敗したコピー試行の時刻を示します。コピーが保留中の場合、Copy Blob 操作でこの BLOB がコピー先になったことがない場合、あるいは Copy BlobSet Blob Properties、または Put Blob を使用した Put Block List 操作の完了後にこの BLOB が変更された場合には、このヘッダーは表示されません。

x-ms-copy-status-description: <error string>

この操作は、バージョン 2012-02-12 以降で使用できます。x-ms-copy-statusfailed または pending である場合にのみ表示されます。最後に発生した致命的な、または致命的ではないコピー操作のエラーの原因について説明します。Copy Blob 操作でこの BLOB がコピー先になったことがない場合、あるいは Copy BlobSet Blob Properties、または Put Blob を使用した Put Block List 操作の完了後にこの BLOB が変更された場合には、このヘッダーは表示されません。

x-ms-copy-id: <id>

この操作は、バージョン 2012-02-12 以降で使用できます。この BLOB をコピー先 BLOB として最後に試行された Copy Blob 操作の文字列識別子。Copy Blob 操作でこの BLOB がコピー先になったことがない場合、あるいは Copy BlobSet Blob Properties、または Put Blob を使用した Put Block List 操作の完了後にこの BLOB が変更された場合には、このヘッダーは表示されません。

x-ms-copy-progress: <bytes copied/bytes total>

この操作は、バージョン 2012-02-12 以降で使用できます。この BLOB をコピー先 BLOB として最後に試行された Copy Blob 操作における、コピー元のコピーされたバイト数と合計バイト数が含まれます。示される値の範囲は、0 からコピーされた Content-Length のバイト数です。Copy Blob 操作でこの BLOB がコピー先になったことがない場合、あるいは Copy BlobSet Blob Properties、または Put Blob を使用した Put Block List 操作の完了後にこの BLOB が変更された場合には、このヘッダーは表示されません。

x-ms-copy-source: url

この操作は、バージョン 2012-02-12 以降で使用できます。この BLOB がコピー先 BLOB であった、前回試行された Copy Blob 操作で使用したソース BLOB またはファイルを指定する URL (最大長は 2 KB)。Copy Blob 操作でこの BLOB がコピー先になったことがない場合、あるいは Copy BlobSet Blob Properties、または Put Blob を使用した Put Block List 操作の完了後にこの BLOB が変更された場合には、このヘッダーは表示されません。

x-ms-copy-status: <pending | success | aborted | failed>

この操作は、バージョン 2012-02-12 以降で使用できます。x-ms-copy-id で特定されたコピー操作の状態。値は次のとおりです。

  • success: コピーが正常に完了しました。

  • pending: コピーが進行中です。断続的で致命的ではないエラーによって、コピーが失敗するわけではないが、コピーの進捗が遅れている場合は、x-ms-copy-status-description を確認します。

  • aborted: Abort Blob Copy によってコピーが終了しました。

  • failed: コピーに失敗しました。エラーの詳細については、x-ms-copy-status-description を参照してください。

Copy Blob 操作でこの BLOB がコピー先になったことがない場合、あるいは Copy BlobSet Blob Properties、または Put Blob を使用した Put Block List 操作の完了後にこの BLOB が変更された場合には、このヘッダーは表示されません。

x-ms-lease-duration: <infinite | fixed>

この操作は、バージョン 2012-02-12 以降で使用できます。BLOB がリースされている場合に、リース期間が無限と固定のどちらであるかを指定します。

x-ms-lease-state: <available | leased | expired | breaking | broken>

この操作は、バージョン 2012-02-12 以降で使用できます。BLOB のリースの状態。

x-ms-lease-status:<locked, unlocked>

BLOB の現在のリース ステータス。

x-ms-request-id

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

x-ms-version

要求の実行に使用する BLOB サービスのバージョンを示します。バージョン 2009/09/19 以降を使用して行われた要求を対象としています。

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

Accept-Ranges: bytes

サービスが BLOB コンテンツの一部に対する要求をサポートすることを示します。バージョン 2011-08-18 以降を使用して行われた要求、および SDK Version 1.6 以降のローカル ストレージ サービスを対象としています。

Date

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

Access-Control-Allow-Origin

要求に Origin ヘッダーが含まれ、照合ルールで CORS が有効な場合に返されます。このヘッダーは、一致の場合にオリジン要求ヘッダーの値を返します。

Access-Control-Expose-Headers

要求に Origin ヘッダーが含まれ、照合ルールで CORS が有効な場合に返されます。要求のクライアントや発行元に公開される応答ヘッダーの一覧を返します。

Vary

CORS ルールが指定されている場合に、Origin ヘッダーの値と共に返されます。詳細については、「Azure ストレージ サービスでのクロス オリジン リソース共有 (CORS) のサポート」を参照してください。

Access-Control-Allow-Credentials

要求に Origin ヘッダーが含まれ、すべてのオリジンを許可しない照合ルールで CORS が有効な場合に返されます。このヘッダーは true に設定されます。

応答本文には BLOB のコンテンツが含まれます。

Status Response:
HTTP/1.1 200 OK

Response Headers:
x-ms-blob-type: BlockBlob
x-ms-lease-status: unlocked
x-ms-lease-state: available
x-ms-meta-m1: v1
x-ms-meta-m2: v2
Content-Length: 11
Content-Type: text/plain; charset=UTF-8
Date: Wed, 23 Oct 2013 22:49:18 GMT
ETag: "0x8CB171DBEAD6A6B"
Vary: Origin
Last-Modified: Wed, 23 Oct 2013 22:48:29 GMT
x-ms-version: 2013-08-15
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0

コンテナーのアクセス制御リスト (ACL: Access Control List) が BLOB の匿名アクセスを許可するように設定されている場合、クライアントはこの操作を呼び出すことができます。コンテナーがプライベートの場合、この操作は、アカウント所有者と、この BLOB に対する読み取りアクセス許可がある共有アクセス署名を持つ任意のユーザーのみが実行できます。

ページ BLOB の場合、コンテンツがまだないページまたは消去されたページの範囲に対する Get Blob 操作では、それらのバイトについてゼロが返されます。

範囲が指定されていないページ BLOB に対して Get Blob を呼び出した場合、サービスでは、x-ms-blob-content-length ヘッダーに対して指定された値までのページ範囲が返されます。コンテンツのないページの場合、サービスはそれらのバイトについてゼロを返します。

Get Blob 操作の完了までの許容時間は、1 MB あたり 2 分です。この操作にかかる時間が平均で 1 MB あたり 2 分を超えると、操作はタイムアウトします。

プライベート コンテナーに属する BLOB を取得するには、x-ms-version ヘッダーが必要です。BLOB が、完全または部分的なパブリック アクセスに使用可能なコンテナーに属する場合、クライアントはその BLOB をバージョン指定なしで読み取ることができます。パブリック コンテナーに属する BLOB の取得では、サービス バージョンは不要です。詳細については、「コンテナーと BLOB へのアクセスの制限」を参照してください。

コピー操作

Copy Blob 操作が完了したかどうかを確認するには、まず、コピー先 BLOB の x-ms-copy-id ヘッダー値が、Copy Blob への元に呼び出しによって提供されたコピー ID と一致することを確認します。一致した場合は、別のアプリケーションによってコピーが中止されなかったこと、また、新しい Copy Blob 操作が開始されなかったことが保証されます。次に、x-ms-copy-status: success ヘッダーを確認します。ただし、BLOB に対して LeasePut PagePut Block 以外の書き込み操作を実行すると、すべての x-ms-copy-* プロパティが BLOB から削除されることに注意してください。また、これらのプロパティは、2012-02-12 より前のバージョンを使用する Copy Blob 操作ではコピーされません。

x-ms-copy-status: failed が応答に表示されている場合、x-ms-copy-status-description には、Copy Blob エラーに関する詳細が含まれます。

x-ms-copy-status-description 値の 3 つのフィールドの説明を次の表に示します。

 

コンポーネント 説明

HTTP 状態コード

エラーを示す標準の 3 桁の整数。

エラー コード

<ErrorCode> 要素で Azure から提供されるエラーを説明するキーワード。<ErrorCode> 要素がない場合は、HTTP 仕様の 3 桁の HTTP ステータス コードに関連付けられた標準エラー テキストを含むキーワードが使用されます。「REST API の一般的なエラー コード」を参照してください。

情報

引用符で囲まれたエラーの詳しい説明。

一般的なエラー シナリオの x-ms-copy-statusx-ms-copy-status-description の値を次の表に示します。

Important重要
ここで示す説明テキストは、バージョン変更が行われなくても、警告なしに変更される可能性があるため、このテキストと厳密に一致しない場合があることに注意してください。

 

シナリオ x-ms-copy-status 値 x-ms-copy-status-description 値

コピー操作が正常に完了した。

success

コピー操作が完了する前にユーザーが操作を中止した。

aborted

コピー操作の実行中、コピー元 BLOB からの読み取り時にエラーが発生したが、操作が再試行される。

pending

502 BadGateway "コピー元の読み取り時に再試行可能なエラーが発生しました。再試行します。エラーの時刻:<時刻>"

コピー操作でコピー先 BLOB への書き込み時にエラーが発生したが、操作が再試行される。

pending

500 InternalServerError "再試行可能なエラーが発生しました。再試行します。エラーの時刻:<時刻>"

コピー操作でコピー元 BLOB からの読み取り時に回復不能なエラーが発生した。

失敗

404 ResourceNotFound "コピー元の読み取り時にコピーに失敗しました。"

noteメモ
この基になるエラーを報告するときには、Azure から <ErrorCode> 要素で ResourceNotFound が返されます。応答に <ErrorCode> 要素がない場合は、HTTP ステータスの標準の文字列表記 (NotFound など) が表示されます。

すべてのコピー操作を制限するタイムアウト期間が経過した (現在、タイムアウト期間は 2 週間です)。

失敗

500 OperationCancelled "コピーの最大許容時間を超えました。"

コピー元からの読み取り時にコピー操作が何度も失敗しており、試行の最小成功率に達していなかった (このタイムアウトにより、失敗まで 2 週間にわたって状態の良くないコピー元に対して再試行が繰り返されるのを防ぎます)。

失敗

500 OperationCancelled "コピー元の読み取り時にコピーに失敗しました。"

この情報は役に立ちましたか。
(残り 1500 文字)
フィードバックをいただき、ありがとうございました
表示:
© 2014 Microsoft