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

BLOB サービス操作の範囲ヘッダーの指定

更新日: 2013年11月

BLOB サービスの一部の GET 操作では、標準 HTTP Range ヘッダーの使用をサポートします。.NET クライアント ライブラリを含む多数の HTTP クライアントでは、Range ヘッダーのサイズを 32 ビットの整数に制限しているので、その値は最大 4 GB に制限されます。ブロック BLOB とページ BLOB は、どちらもサイズが 4 GB を超える可能性があるので、BLOB サービスでは、HTTP x-ms-range ヘッダーを引数として使用する操作で、カスタム範囲ヘッダー Range の使用を認めています。

Microsoft Silverlight ライブラリを含む一部の HTTP クライアントでは、Range ヘッダーへのアクセスを制限しています。x-ms-range ヘッダーを使用して、この制限を回避できます。

要求に x-ms-range ヘッダーが指定されている場合、サービスでは x-ms-range に指定された範囲が使用されます。それ以外の場合は、Range ヘッダーに指定された範囲が使用されます。

noteメモ
Windows Azure のストレージ クライアント ライブラリでは、Range オブジェクトの PutPageProperties プロパティが設定されている場合は、要求に適切な範囲ヘッダーを設定する処理が自動的に実行されます。

BLOB サービスでは、Range ヘッダーと x-ms-range ヘッダーとして、2 バイトの範囲を受け入れます。ヘッダーのバイト範囲は、次のどちらかの形式に従う必要があります。

  • bytes=startByte- (バージョン 2011-08-18 以上を使用する要求の場合)

  • bytes=startByte-endByte (すべてのバージョン (2009-04-14 から最新バージョンまで) を使用する要求の場合)

1 つ目の形式 bytes=startByte- は、バージョン 2011-08-18 以上を使用する要求、または SDK 1.6 以上のストレージ エミュレーター サービスに対して使用できます。この範囲は、オフセット位置 startByte から BLOB の最後までのバイトを返します。たとえば、BLOB の先頭の 256 バイトより後のすべてのバイト範囲を指定するには、次のいずれかのヘッダーを渡します。

  • Range: bytes=255-

  • x-ms-range: bytes=255-

応答の Content-Length ヘッダーは、オフセット位置から BLOB の最後までのバイト数と等しくなります。前の例の範囲を長さが 1,024 バイトの BLOB に対して使用した場合、Content-Length は 756 になります。

オフセットが有効な値で、BLOB 全体の長さを超えていない場合、要求はステータス コード 206 (Partial Content) を返します。オフセットが無効な値で、BLOB 全体の長さを超えている場合、要求はステータス コード 416 (Requested Range Not Satisfiable) を返します。

2 つ目の形式 bytes=startByte-endByte は、すべてのバージョン (2009-04-14 から最新バージョンまで) を使用する要求と、ストレージ エミュレーター サービスのすべてのバージョンに対して使用できます。この範囲は、オフセット位置 startByte から endByte までのバイトを返します。たとえば、BLOB の先頭の 512 バイトの範囲を指定するには、次のいずれかのヘッダーを渡します。

  • Range: bytes=0-511

  • x-ms-range: bytes=0-511

応答の Content-Length ヘッダーは、各オフセット間のバイト数と等しくなります。前の例の範囲を長さが 1,024 バイトの BLOB に対して使用した場合、Content-Length は 512 になります。

オフセットが有効な値で、BLOB 全体の長さを超えていない場合、要求はステータス コード 206 (Partial Content) を返します。オフセットが無効な値で、BLOB 全体の長さを超えている場合、要求はステータス コード 416 (Requested Range Not Satisfiable) を返します。

関連項目

表示:
© 2014 Microsoft