FileREST の範囲ヘッダーの指定

一部の FileREST GET 操作では、標準の HTTP Range ヘッダーの使用がサポートされています。 .NET クライアント ライブラリを含む多くの HTTP クライアントは、ヘッダーの Range サイズを 32 ビット整数に制限するため、その値は最大 4 GiB に制限されます。 ファイルのサイズは 4 GiB を超える可能性があるため、Azure Filesは HTTP Range ヘッダーx-ms-rangeを受け取る任意の操作に対してカスタム範囲ヘッダーを受け入れます。

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

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

範囲ヘッダーの形式

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

  • bytes=startByte-
  • bytes=startByte-endByte

形式 1: bytes=startByte-

この範囲は、オフセット位置 startByte からファイルの最後までのバイトを返します。 たとえば、ファイルの先頭の 256 バイトより後のすべてのバイト範囲を指定するには、次のいずれかのヘッダーを渡します。

  • Range: bytes=255-
  • x-ms-range: bytes=255-

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

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

形式 2: bytes=startByte-endByte

この範囲は、オフセット位置 startByte から endByte までのバイトを返します。 たとえば、ファイルの先頭の 512 バイトの範囲を指定するには、次のいずれかのヘッダーを渡します。

  • Range: bytes=0-511

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

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

オフセットが有効で、ファイルの合計長を超えない場合、要求は状態コード 206 (部分コンテンツ) を返します。 オフセットが無効な値で、ファイル全体の長さを超えている場合、要求はステータス コード 416 (Requested Range Not Satisfiable) を返します。

関連項目

Azure Filesの概念