Partilhar via


Especificar o cabeçalho de intervalo para FileREST

Algumas operações FILEREST GET suportam a utilização do cabeçalho HTTP Range padrão. Muitos clientes HTTP, incluindo a biblioteca de cliente .NET, limitam o tamanho do Range cabeçalho a um número inteiro de 32 bits, pelo que o seu valor está limitado a um máximo de 4 GiB. Uma vez que os ficheiros podem ter um tamanho superior a 4 GiB, o Ficheiros do Azure aceita um cabeçalho x-ms-range de intervalo personalizado para qualquer operação que utilize um cabeçalho HTTPRange.

Alguns clientes HTTP, incluindo a biblioteca do Microsoft Silverlight, limitam completamente o Range acesso ao cabeçalho. O x-ms-range cabeçalho também pode ser utilizado para contornar estas limitações.

Se o x-ms-range cabeçalho for especificado num pedido, o serviço utilizará o intervalo especificado por x-ms-range; caso contrário, será utilizado o intervalo especificado pelo Range cabeçalho.

Formatos de cabeçalho do intervalo

Ficheiros do Azure aceita dois intervalos de bytes para os Range cabeçalhos e x-ms-range . O intervalo de bytes tem de cumprir qualquer um dos seguintes formatos para os cabeçalhos:

  • bytes=startByte-
  • bytes=startByte-endByte

Formato 1: bytes=startByte-

Este intervalo irá devolver bytes do desvio startByte até ao final do ficheiro. Por exemplo, para especificar um intervalo que abranja todos os bytes após os primeiros 256 bytes de um ficheiro, pode transmitir um dos seguintes cabeçalhos:

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

O Content-Length cabeçalho na resposta é igual ao número de bytes do deslocamento até ao fim do ficheiro. Utilizar o intervalo de exemplo acima para um ficheiro com 1024 bytes de comprimento Content-Length seria 756.

Se o desvio for válido e não exceder o comprimento total do ficheiro, o pedido devolverá um código de estado 206 (Conteúdo Parcial). Se o desvio for inválido e exceder o comprimento total do ficheiro, o pedido devolverá o código de estado 416 (Intervalo Pedido Não Satisfiável).

Formato 2: bytes=startByte-endByte

Este intervalo devolverá bytes do deslocamento startByte através de endByte. Por exemplo, para especificar um intervalo que abranja os primeiros 512 bytes de um ficheiro, transmitiria um dos seguintes cabeçalhos:

  • Range: bytes=0-511

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

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

Se o desvio for válido e não exceder o comprimento total do ficheiro, o pedido devolverá um código de estado 206 (Conteúdo Parcial). Se o desvio for inválido e exceder o comprimento total do ficheiro, o pedido devolverá o código de estado 416 (Intervalo Pedido Não Satisfiável).

Ver também

Conceitos de Ficheiros do Azure