Partage via


Spécification de l’en-tête de plage pour FileREST

Certaines opérations FileREST GET 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, et sa valeur est donc limitée à un maximum de 4 Gio. Étant donné que les fichiers peuvent avoir une taille supérieure à 4 Gio, le Azure Files accepte un en-tête x-ms-range de plage personnalisé pour toute opération qui prend un en-tête HTTPRange.

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.

Formats d’en-tête de plage

Azure Files accepte deux plages d’octets pour les Range en-têtes etx-ms-range. La plage d'octets doit utiliser l'un ou l'autre des formats suivants pour les en-têtes :

  • bytes=startByte-
  • bytes=startByte-endByte

Format 1 : octets=startByte-

Cette plage renvoie des octets à partirdu décalage startByte jusqu'à la fin du fichier. Par exemple, pour spécifier une plage englobant tous les octets après les 256 premiers octets d'un fichier, 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 du fichier. En utilisant l'exemple de plage ci-dessus pour un fichier de 1 024 octets, Content-Length est égal à 756.

Si le décalage est valide et ne dépasse pas la longueur totale du fichier, la demande renvoie le code d'état 206 (Contenu partiel). Si le décalage n'est pas valide et dépasse la longueur totale du fichier, la demande renvoie le code d'état 416 (La gamme demandée ne peut pas être satisfaite).

Format 2 : octets=startByte-endByte

Cette plage renvoie des octets à partir du décalage startByte jusqu'à endByte. Par exemple, pour spécifier une plage englobant les 512 premiers octets d'un fichier, 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. L’exemple de plage ci-dessus pour un fichier de 1 024 octets Content-Length serait de 512.

Si le décalage est valide et ne dépasse pas la longueur totale du fichier, la demande retourne un status code 206 (Contenu partiel). Si le décalage n'est pas valide et dépasse la longueur totale du fichier, la demande renvoie le code d'état 416 (La gamme demandée ne peut pas être satisfaite).

Voir aussi

concepts Azure Files