contrôle de version pour les services stockage Azure

Plusieurs versions des services de stockage Microsoft Azure sont prises en charge. Pour effectuer une requête auprès des services de stockage, vous devez spécifier la version que vous souhaitez utiliser pour cette opération, sauf si la requête est anonyme.

La version actuelle des services de stockage Azure est 2020-10-02, et l’utilisation de cette version est recommandée dans la mesure du possible. pour obtenir la liste de toutes les autres versions prises en charge, et pour plus d’informations sur l’utilisation de chaque version, consultez versions précédentes du service stockage Azure.

Version 2020-10-02

La version 2020-10-02 du service comprend les fonctionnalités suivantes :

Spécification des versions de service dans les demandes

La façon dont vous spécifiez la version des services de stockage à utiliser pour une demande se réfère à la manière dont cette demande est autorisée. Les sections suivantes décrivent les options d’autorisation et la spécification de la version du service pour chacune d’elles :

  • Demandes utilisant un jeton OAuth 2,0 de Azure Active Directory (Azure AD). Pour autoriser une demande avec Azure AD, transmettez l' x-ms-version en-tête à la demande avec une version de service de 2017-11-09 ou une version ultérieure. Pour plus d’informations, consultez appeler des opérations de stockage avec des jetons OAuth dans authorize with Azure Active Directory.

  • Demandes utilisant Shared Key ou Shared Key Lite Pour autoriser une demande avec Shared Key/Shared Key Lite, transmettez l' x-ms-version en-tête à la demande. Dans le cas du service BLOB, vous pouvez spécifier la version par défaut pour toutes les demandes en appelant Set Blob service Properties.

  • Demandes utilisant une signature d’accès partagé (SAP). Vous pouvez spécifier deux options de contrôle de version pour une signature d'accès partagé. L' api-version en-tête facultatif indique la version du service à utiliser pour exécuter l’opération de l’API. Le paramètre required SignedVersion (sv) spécifie la version de service à utiliser pour autoriser la demande effectuée avec la signature d’accès partagé. Si l'en-tête api-version n'est pas spécifié, la valeur du paramètre SignedVersion (sv) indique également la version à utiliser pour exécuter l'opération de l'API.

  • Demandes utilisant l'accès anonyme Dans le cas d'une demande anonyme au service BLOB, aucune version n'est spécifiée. Le choix de la version utilisée est déterminé par certaines règles (voir plus bas).

Demandes autorisées à l’aide de Azure AD, Shared Key ou Shared Key Lite

Pour autoriser une demande avec Azure AD, Shared Key ou Shared Key Lite, spécifiez l' x-ms-version en-tête dans la demande. La valeur d'en-tête de demande x-ms-version doit être spécifiée au format AAAA-MM-JJ. Par exemple :

Request Headers:  
x-ms-version: 2020-04-08

Les règles suivantes indiquent comment ces demandes sont évaluées pour déterminer la version à utiliser lors du traitement de la demande.

  • Si une demande a un en-tête valide x-ms-version, le service de stockage utilise la version spécifiée. Toutes les demandes aux services de Table et de File d'attente qui n'utilisent pas une signature d'accès partagé doivent spécifier un en-tête x-ms-version. Toutes les demandes au service BLOB qui n'utilisent pas de signature d'accès partagé doivent spécifier un en-tête x-ms-version, sauf si la version par défaut a été définie, comme décrit ci-dessous.

  • Si une demande au service BLOB n’a pas d' x-ms-version en-tête, mais que le propriétaire du compte a défini une version par défaut à l’aide de l’option définir les propriétés du service BLOB, la version par défaut spécifiée est utilisée comme version de la demande.

Demandes autorisées avec une signature d’accès partagé

Une signature d’accès partagé (SAS) générée à l’aide de la version 2014-02-14 ou ultérieure prend en charge deux options de contrôle de version :

  • Le paramètre de requête api-version définit la version du protocole REST à utiliser pour traiter une demande effectuée avec une signature d'accès partagé (SAS).

  • Le SignedVersion (sv) paramètre de requête définit la version de la signature d’accès partagé à utiliser pour l’autorisation.

Le SignedVersion paramètre de requête est utilisé pour l’autorisation lorsqu’un client effectue une demande à l’aide de la SAP. Les paramètres d’autorisation tels que si , sr , sp , sig , st , se ,,,, tn spk srk epk et erk sont tous interprétés à l’aide de la version spécifiée.

Les paramètres de protocole REST (tels que rscc, rscd, rsce, rscl et rsct) sont appliqués avec la version spécifiée dans l'en-tête de paramètre api-version. Si l'en-tête api-version n'est pas spécifié, la version des services utilisée est celle indiquée par le paramètre SignedVersion.

Le api-version paramètre ne fait pas partie de la chaîne de connexion dans l’en-tête d’autorisation, comme décrit dans créer uneSAP de service.

Le tableau suivant décrit le schéma de contrôle de version utilisé par le service pour l’autorisation et pour appeler le protocole REST lorsque le SignedVersion paramètre est défini sur la version 2014-02-14 ou une version ultérieure.

Valeur du paramètre api-version Version utilisée pour l’autorisation Version utilisée pour le comportement de protocole
Non spécifié Version spécifiée dans le sv paramètre Version spécifiée dans le sv paramètre
N'importe quelle version valide des services de stockage, au format XXXX-XX-XX Version spécifiée dans le sv paramètre N'importe quelle version valide des services de stockage, au format XXXX-XX-XX

Exemple 1

L’exemple de demande suivant appelle des objets BLOB de liste avec sv=2015-04-05 et sans le api-version paramètre.

https://myaccount.blob.core.windows.net/mycontainer?restype=container&comp=list&sv=2015-04-05&si=readpolicy&sig=a39 %2BYozJhGp6miujGymjRpN8tsrQfLo9Z3i8IRyIpnQ%3d

Dans ce cas, le service authentifie et autorise la demande à l’aide de la version 2015-04-05 et exécute également l’opération à l’aide de la version 2015-04-05.

Exemple 2

L’exemple de demande suivant appelle la liste d’objets BLOB avec sv=2015-04-05 et avec le api-version paramètre.

https://myaccount.blob.core.windows.net/mycontainer?restype=container&comp=list&sv=2015-04-05&si=readpolicy&sig=a39 %2BYozJhGp6miujGymjRpN8tsrQfLo9Z3i8IRyIpnQ%3d&api-version=2012-02-12

Ici, le service autorise la demande à l’aide de la version 2015-04-05 et exécute l’opération à l’aide de la version 2012-02-12.

Notes

La bibliothèque cliente de stockage pour .NET définit toujours la version du protocole REST (avec le paramètre api-version) en fonction de sa version de base.

Demandes via un accès anonyme

Les demandes effectuées via un accès anonyme sont gérées différemment selon le type de compte de stockage sur lequel elles sont établies.

Pour les comptes de stockage à usage général

Si une demande anonyme à un compte de stockage à usage général ne spécifie pas l' x-ms-version en-tête et que la version par défaut du service n’a pas été définie à l’aide de l’option définir les propriétés du service BLOB, le service utilise la première version possible pour traiter la demande. Toutefois, si le conteneur a été rendu public avec une opération Set Container ACL effectuée avec la version 2009-09-19 ou une version ultérieure, la demande est traitée à l’aide de la version 2009-09-19.

Pour les comptes de stockage d’objets BLOB

Si une demande anonyme à un compte de stockage d’objets BLOB ne spécifie pas l' x-ms-version en-tête et que la version par défaut du service n’a pas été définie à l’aide de l’option définir les propriétés du service BLOB, le service utilise la première version possible pour traiter la demande. Pour un compte de stockage d’objets BLOB, la version la plus récente possible est 2014-02-14.

Voir aussi