VENTES: 1-800-867-1389

Spécification de l'en-tête Range pour les opérations du service BLOB

Mis à jour: novembre 2013

Plusieurs opérations GET de service BLOB prennent en charge l'utilisation de l'en-tête HTTP Range standard. De nombreux clients HTTP, y compris la bibliothèque cliente .NET, limitent la taille de l'en-tête Range à un entier 32 bits, sa valeur est donc limitée donc à 4 Go. La taille des objets blob de blocs et des objets blob de pages peut être supérieure à 4 Go, le service BLOB accepte un en-tête de plage personnalisé x-ms-range pour toute opération qui accepte un en-tête HTTP Range.

Certains clients HTTP, y compris la bibliothèque Microsoft Silverlight, limitent l'accès à l'en-tête Range. L'en-tête x-ms-range peut être utilisé pour éviter ces limitations.

Si l'en-tête x-ms-range est spécifié sur une demande, le service utilise la plage spécifiée par x-ms-range ; dans le cas contraire, la plage spécifiée par l'en-tête Range est utilisée.

noteRemarque
La bibliothèque cliente Windows Azure Storage gère automatiquement la définition de l'en-tête de plage approprié dans la demande lorsque vous définissez la propriété Range de l'objet PutPageProperties.

Le service BLOB accepte deux plages d'octets pour les en-têtes Range et x-ms-range. La plage d'octets doit utiliser l'un ou l'autre des formats suivants pour les en-têtes :

  • bytes=startByte- pour les demandes qui utilisent la version du 18/08/2011 ou une version ultérieure.

  • bytes=startByte-endByte pour les demandes qui utilisent toutes les versions (à partir de la version du 14/04/2009)

Le premier format, bytes=startByte-, est disponible uniquement pour les demandes qui utilisent la version du 18/08/2011 ou les versions ultérieures, ou le service de l'émulateur de stockage dans le Kit de développement logiciel (SDK) 1.6 ou ultérieur. Cette plage retourne des octets à partir du décalage startByte jusqu'à la fin de l'objet blob. Par exemple, pour spécifier une plage englobant tous les octets après les 256 premiers octets d'un objet blob, vous pouvez transmettre l'un des en-têtes suivants :

  • Range: bytes=255-

  • x-ms-range: bytes=255-

L'en-tête Content-Length dans la réponse est égal au nombre d'octets à partir du décalage jusqu'à la fin de l'objet blob. En utilisant l'exemple de plage ci-dessus pour un objet blob de 1 024 octets, Content-Length est égal à 756.

Si le décalage est valide et ne dépasse pas la longueur totale de l'objet blob, la demande retourne le code d'état 206 (Contenu partiel). Si le décalage n'est pas valide et dépasse la longueur totale de l'objet blob, la demande retourne le code d'état 416 (Plage demandée non satisfaisante).

Le deuxième format, bytes=startByte-endByte, est disponible pour les demandes qui utilisent toutes les versions (à partir de la version du 14/04/2009), et pour toutes les versions du service de l'émulateur de stockage. Cette plage retourne des octets à partir du décalage startByte jusqu'à endByte. Par exemple, pour spécifier une plage englobant les 512 premiers octets d'un objet blob, vous pouvez transmettre l'un des en-têtes suivants :

  • Range: bytes=0-511

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

L'en-tête Content-Length dans la réponse est égal au nombre d'octets entre chaque décalage. En utilisant l'exemple de plage ci-dessus pour un objet blob de 1 024 octets, Content-Length est égal à 512.

Si le décalage est valide et ne dépasse pas la longueur totale de l'objet blob, la demande retourne le code d'état 206 (Contenu partiel). Si le décalage n'est pas valide et dépasse la longueur totale de l'objet blob, la demande retourne le code d'état 416 (Plage demandée non satisfaisante).

Voir aussi

Cela vous a-t-il été utile ?
(1500 caractères restants)
Merci pour vos suggestions.
Microsoft réalise une enquête en ligne pour recueillir votre opinion sur le site Web de MSDN. Si vous choisissez d’y participer, cette enquête en ligne vous sera présentée lorsque vous quitterez le site Web de MSDN.

Si vous souhaitez y participer,
Afficher:
© 2014 Microsoft