Especificando o cabeçalho de intervalo para FileREST

Algumas operações FileREST GET dão suporte ao uso do cabeçalho HTTP Range padrão. Muitos clientes HTTP, incluindo a biblioteca de clientes .NET, limitam o tamanho do Range cabeçalho a um inteiro de 32 bits e, portanto, seu valor é limitado a um máximo de 4 GiB. Como os arquivos podem ter mais de 4 GiB de tamanho, o Arquivos do Azure aceita um cabeçalho x-ms-range de intervalo personalizado para qualquer operação que usa um cabeçalho HTTPRange.

Alguns clientes de HTTP, inclusive a biblioteca do Microsoft Silverlight, restringem completamente o acesso ao cabeçalho Range. O cabeçalho x-ms-range também pode ser usado para contornar essas limitações.

Se o cabeçalho x-ms-range for especificado em uma solicitação, o serviço usará o intervalo especificado por x-ms-range; caso contrário, o intervalo especificado pelo cabeçalho Range será usado.

Formatos de cabeçalho de intervalo

Arquivos do Azure aceita dois intervalos de bytes para os Range cabeçalhos e x-ms-range . O intervalo de bytes deve aderir a qualquer um dos seguintes formatos para os cabeçalhos:

  • bytes=startByte-
  • bytes=startByte-endByte

Formato 1: bytes=startByte-

Esse intervalo retorna bytes do deslocamento startByte até o término do arquivo. Por exemplo, para especificar um intervalo que abranja todos os bytes após os primeiros 256 bytes de um arquivo, transmita qualquer um dos seguintes cabeçalhos:

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

O cabeçalho Content-Length na resposta é igual ao número de bytes do deslocamento até o final do arquivo. Usando o intervalo de exemplo anterior para um arquivo de 1.024 bytes de comprimento, Content-Length seria 756.

Se o deslocamento for válido e não exceder o comprimento total do arquivo, a solicitação retorna um código de status HTTP 206. Se o deslocamento for inválido e exceder o comprimento total do arquivo, a solicitação retornará um código de status HTTP 416 (Intervalo Solicitado não Satisfatório).

Formato 2: bytes=startByte-endByte

Esse intervalo retornará bytes do deslocamento startByte até endByte. Por exemplo, para especificar um intervalo que abranja os primeiros 512 bytes de um arquivo, transmita qualquer um dos seguintes cabeçalhos:

  • Range: bytes=0-511

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

O cabeçalho Content-Length na resposta é igual ao número de bytes entre cada deslocamento. Usar o intervalo de exemplo acima para um arquivo de 1.024 bytes de comprimento Content-Length seria 512.

Se o deslocamento for válido e não exceder o comprimento total do arquivo, a solicitação retornará um código de status 206 (Conteúdo Parcial). Se o deslocamento for inválido e exceder o comprimento total do arquivo, a solicitação retornará um código de status HTTP 416 (Intervalo Solicitado não Satisfatório).

Confira também

Conceitos de Arquivos do Azure