Поделиться через


Указание заголовка диапазона для 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 (запрошенный диапазон невыполним).

См. также раздел

Основные понятия Файлы Azure