Указание заголовка диапазона для FileREST
Некоторые операции FileREST GET поддерживают использование стандартного http-заголовка Range
. Многие КЛИЕНТЫ HTTP, в том числе клиентская библиотека .NET, ограничивают размер Range
заголовка 32-разрядным целым числом, поэтому его значение ограничено максимум 4 ГиБ. Так как размер файлов может превышать 4 ГиБ, Файлы Azure принимает настраиваемый заголовок x-ms-range
диапазона для любой операции, принимающей заголовок HTTPRange
.
Некоторые HTTP-клиенты, включая библиотеку Microsoft Silverlight, вообще ограничивают доступ к заголовку Range
. Можно использовать заголовок x-ms-range
, чтобы обойти также и это ограничение.
Если в запросе указан заголовок x-ms-range
, то служба использует диапазон, указанный x-ms-range
; в противном случае используется диапазон, указанный в заголовке Range
.
Форматы заголовков диапазона
Файлы Azure принимает два диапазона байтов для Range
заголовков и x-ms-range
. Байтовый диапазон должен соответствовать одному из следующих форматов:
bytes=startByte-
bytes=startByte-endByte
Формат 1: bytes=startByte-
Этот диапазон вернет байты от смещения startByte
и до конца файла. Например, чтобы указать диапазон, включающий все байты после первых 256 байт файла, можно передать один из следующих заголовков:
Range: bytes=255-
x-ms-range: bytes=255-
Заголовок Content-Length
в ответе равен числу байтов от смещения и до конца файла. Если использовать диапазон из примера выше для файла размером 1024 байта, то Content-Length
будет равно 756.
Если задано правильное смещение, не превышающее общую длину файла, запрос возвращает код состояния HTTP 206 (частичное содержимое). Если смещение недопустимо и превышает общую длину файла, то запрос возвращает код состояния HTTP 416 (запрошенный диапазон невыполним).
Формат 2: bytes=startByte-endByte
Этот диапазон возвращает байты от смещения startByte
до endByte
. Например, чтобы указать диапазон, включающий первые 512 байт файла, можно передать один из следующих заголовков:
Range: bytes=0-511
x-ms-range: bytes=0-511
Заголовок Content-Length
в ответе равен числу байтов между каждым смещением. Если использовать приведенный выше пример диапазона для файла длиной 1024 байта, Content-Length
это будет 512.
Если смещение является допустимым и не превышает общую длину файла, запрос вернет код состояния 206 (частичное содержимое). Если смещение недопустимо и превышает общую длину файла, то запрос возвращает код состояния HTTP 416 (запрошенный диапазон невыполним).