Especificar el encabezado de intervalo para FileREST
Algunas operaciones GET de FileREST admiten el uso del encabezado HTTP Range
estándar. Muchos clientes HTTP, incluida la biblioteca cliente de .NET, limitan el tamaño del Range
encabezado a un entero de 32 bits y, por tanto, su valor se limita a un máximo de 4 GiB. Dado que los archivos pueden tener un tamaño superior a 4 GiB, el Azure Files acepta un encabezado x-ms-range
de intervalo personalizado para cualquier operación que tome un encabezado HTTPRange
.
Algunos clientes HTTP, incluida la biblioteca de Microsoft Silverlight, limitan totalmente el acceso al encabezado Range
. El encabezado x-ms-range
también se puede utilizar para evitar estas limitaciones.
Si se especifica el encabezado x-ms-range
en una solicitud, el servicio utiliza el intervalo especificado en x-ms-range
; si no se especifica, utiliza el intervalo especificado en el encabezado Range
.
Formatos de encabezado de intervalo
Azure Files acepta dos intervalos de bytes para los Range
encabezados y x-ms-range
. El intervalo de bytes debe especificarse en cualquiera de los formatos de encabezado siguientes:
bytes=startByte-
bytes=startByte-endByte
Formato 1: bytes=startByte-
Este intervalo devolverá los bytes existentes desde el desplazamiento startByte
hasta el final del archivo. Por ejemplo, para especificar un intervalo que englobe todos los bytes de un archivo a partir de los primeros 256 bytes, puede pasar cualquiera de los encabezados siguientes:
Range: bytes=255-
x-ms-range: bytes=255-
El valor del encabezado Content-Length
de la respuesta es igual al número de bytes existentes desde el desplazamiento hasta el final del archivo. Si se usa el intervalo del ejemplo anterior para un archivo con una longitud de 1.024 bytes, el valor de Content-Length
será 756.
Si el desplazamiento es válido y no supera la longitud total del archivo, la solicitud devolverá un código de estado 206 (Contenido parcial). Si el desplazamiento no es válido y supera la longitud total del archivo, la solicitud devolverá un código de estado 416 (No se puede satisfacer el intervalo solicitado).
Formato 2: bytes=startByte-endByte
Este intervalo devolverá los bytes existentes desde el desplazamiento startByte
hasta endByte
. Por ejemplo, para especificar un intervalo que englobe los primeros 512 bytes de un archivo, deberá pasar cualquiera de los encabezados siguientes:
Range: bytes=0-511
x-ms-range: bytes=0-511
El encabezado Content-Length
de la respuesta es igual al número de bytes existentes entre cada desplazamiento. El uso del intervalo de ejemplo anterior para un archivo de 1024 bytes de longitud sería Content-Length
512.
Si el desplazamiento es válido y no supera la longitud total del archivo, la solicitud devolverá un código de estado 206 (contenido parcial). Si el desplazamiento no es válido y supera la longitud total del archivo, la solicitud devolverá un código de estado 416 (No se puede satisfacer el intervalo solicitado).