VENTAS: 1-800-867-1389

Especificar el encabezado de intervalo para las operaciones del servicio Blob

Actualizado: noviembre de 2013

Son varias las operaciones GET del servicio Blob que admiten el uso del encabezado HTTP estándar Range. Muchos clientes HTTP, incluida la biblioteca de cliente de .NET, limitan el tamaño del encabezado Range a un número entero de 32 bits, por lo que su valor está limitado a un máximo de 4 GB. Dado que los blobs en bloques y los blobs en páginas pueden tener un tamaño superior a 4 GB, el servicio Blob acepta encabezados de intervalo personalizados x-ms-range en todas las operaciones que admiten encabezados HTTP Range.

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.

noteNota
La biblioteca de cliente de almacenamiento de Windows Azure controla automáticamente el establecimiento del encabezado de intervalo apropiado en la solicitud cuando se establece la propiedad Range del objeto PutPageProperties.

El servicio Blob acepta dos intervalos de bytes para los encabezados Range y x-ms-range. El intervalo de bytes debe especificarse en cualquiera de los formatos de encabezado siguientes:

  • bytes=startByte- para las solicitudes que usan la versión 2011-08-18 o versiones más recientes.

  • bytes=startByte-endByte para las solicitudes que usan cualquiera de las versiones (de la 2009-04-14 a la más reciente)

El primer formato, bytes=startByte-, solo está disponible para las solicitudes que usan la versión 2011-08-18 o una más reciente, o el servicio del emulador de almacenamiento de SDK 1.6 o una versión más reciente. Este intervalo devolverá los bytes existentes desde el desplazamiento startByte hasta el final del blob. Por ejemplo, para especificar un intervalo que englobe todos los bytes de un blob 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 blob. Si se usa el intervalo del ejemplo anterior para un blob con una longitud 1.024 bytes, el valor de Content-Length será 756.

Si el desplazamiento es válido y no supera la longitud total del blob, la solicitud devolverá un código de estado 206 (Contenido parcial). Si el desplazamiento no es válido y supera la longitud total del blob, la solicitud devolverá un código de estado 416 (No se puede satisfacer el intervalo solicitado).

El segundo formato, bytes=startByte-endByte, está disponible para las solicitudes que usan cualquiera de las versiones (de la 2009-04-14 a la más reciente), y para todas las versiones del emulador de almacenamiento. 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 blob, 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. Si se usa el intervalo del ejemplo anterior para un blob con una longitud 1.024 bytes, el valor de Content-Length será 512.

Si el desplazamiento es válido y no supera la longitud total del blob, la solicitud devolverá un código de estado 206 (Contenido parcial). Si el desplazamiento no es válido y supera la longitud total del blob, la solicitud devolverá un código de estado 416 (No se puede satisfacer el intervalo solicitado).

Vea también

¿Te ha resultado útil?
(Caracteres restantes: 1500)
Gracias por sus comentarios
Mostrar:
© 2014 Microsoft