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