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) を返します。