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).