Contrôle de version pour stockage Azure
Stockage Azure prend en charge plusieurs versions. Pour effectuer une demande 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 2024-11-04, et nous vous recommandons de l’utiliser le cas échéant. 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.
La version de service 2024-11-04 inclut les fonctionnalités suivantes :
- Prise en charge de l’authentification basée sur les jetons pour toutes les API de plan de données dans le service de fichiers. Pour plus d’informations, consultez Autoriser avec Microsoft Entra ID.
- Prise en charge du bursting payant sur les comptes de partage de fichiers Premium. Cette fonctionnalité peut être activée avec l'Créer un partage et définir des propriétés de partage API.
- Prise en charge du format binaire lors de l’obtention et de la définition des autorisations de fichier dans le service de fichiers. Pour plus d’informations, consultez Créer un d’autorisation et obtenir
Spécifier des versions de service dans les requêtes
La façon dont vous spécifiez la version des services de stockage à utiliser pour une demande est liée à la façon dont cette demande est autorisée. Les sections suivantes décrivent les options d’autorisation et la façon dont la version du service est spécifiée pour chacune d’elles.
Demandes qui utilisent un jeton OAuth 2.0 de Microsoft Entra: pour autoriser une demande avec l’ID Microsoft Entra, transmettez l’en-tête
x-ms-version
à la demande avec une version de service de 2017-11-09 ou ultérieure. Pour plus d’informations, consultez Opérations de stockage d’appel avec des jetons OAuth dans Autoriser avec l’ID Microsoft Entra.Demandes qui utilisent une clé partagée ou une clé partagée Lite: pour autoriser une demande avec une clé partagée ou une clé partagée Lite, transmettez l’en-tête
x-ms-version
à la demande. Dans le cas du Stockage Blob Azure, vous pouvez spécifier la version par défaut de toutes les requêtes en appelant Définir les propriétés du service Blob.Demandes qui utilisent une signature d’accès partagé (SAP): vous pouvez spécifier deux options de contrôle de version sur une signature d’accès partagé. L’en-tête
api-version
facultatif indique la version du service à utiliser pour exécuter l’opération d’API. Le paramètreSignedVersion (sv)
requis spécifie la version du service à utiliser pour autoriser la demande effectuée avec la sape. Si l’en-têteapi-version
n’est pas spécifié, la valeur du paramètreSignedVersion (sv)
indique également la version à utiliser pour exécuter l’opération d’API.Demandes qui utilisent l’accès anonyme: en cas d’accès anonyme par rapport au stockage Blob, aucune version n’est transmise. Les heuristiques permettant de déterminer la version à utiliser pour la demande sont décrites dans les sections suivantes.
Autoriser les demandes à l’aide de l’ID Microsoft Entra, de la clé partagée ou de la clé partagée Lite
Pour autoriser une demande avec l’ID Microsoft Entra, la clé partagée ou la clé partagée Lite, spécifiez l’en-tête x-ms-version
sur la demande. La valeur d’en-tête de la demande x-ms-version
doit être spécifiée au format AAAA-MM-DD. Par exemple:
Request Headers:
x-ms-version: 2020-04-08
Les règles suivantes décrivent comment ces requêtes sont évaluées pour déterminer la version à utiliser pour traiter la demande.
Si une demande a un en-tête
x-ms-version
valide, le service de stockage utilise la version spécifiée. Toutes les demandes adressées au Stockage Table Azure et au Stockage File d’attente Azure qui n’utilisent pas de signature d’accès partagé doivent spécifier un en-têtex-ms-version
. Toutes les demandes adressées au stockage Blob qui n’utilisent pas de signature d’accès partagé doivent spécifier un en-têtex-ms-version
, sauf si la version par défaut a été définie, comme décrit dans le paragraphe suivant.Si une demande adressée au stockage Blob n’a pas d’en-tête
x-ms-version
, mais que le propriétaire du compte a défini une version par défaut à l’aide de l’opération 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.
Autoriser les demandes à l’aide d’une signature d’accès partagé
Une signature d’accès partagé (SAP) générée à l’aide de la version 2014-02-14 ou ultérieure prend en charge deux options de gestion de version :
Le paramètre de requête
api-version
définit la version du protocole REST à utiliser pour traiter une requête effectuée à l’aide de la sap.Le paramètre de requête
SignedVersion (sv)
définit la version SAP à utiliser pour l’autorisation.
Le paramètre de requête SignedVersion
est utilisé pour l’autorisation lorsqu’un client effectue une requête à 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 à l’aide de la version fournie dans l’en-tête de paramètre api-version
. Si l’en-tête api-version
n’est pas spécifié, la version du service fournie pour SignedVersion
est utilisée.
Le paramètre api-version
ne fait pas partie de l’en-tête d’autorisation de chaîne à connecter, comme décrit dans Créer une SAP de service.
Le tableau suivant explique le schéma de contrôle de version utilisé par le service pour l’autorisation et pour appeler le protocole REST lorsque le paramètre SignedVersion
est défini sur la version 2014-02-14 ou ultérieure.
Valeur du paramètre |
Version utilisée pour l’autorisation | Version utilisée pour le comportement du protocole |
---|---|---|
Non spécifié | Version spécifiée dans le paramètre sv |
Version spécifiée dans le paramètre sv |
Toute version valide des services de stockage au format XXXX-XX-XX |
Version spécifiée dans le paramètre sv |
Version valide des services de stockage XXXX-XX-XX |
Exemple 1
L’exemple de requête suivant appelle List Blobs avec sv=2015-04-05
et sans le paramètre api-version
.
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 requête à l’aide de la version 2015-04-05 et exécute l’opération à l’aide de la version 2015-04-05.
Exemple 2
L’exemple de requête suivant appelle List Blobs avec sv=2015-04-05
et avec le paramètre api-version
.
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 requête à l’aide de la version 2015-04-05 et exécute l’opération à l’aide de la version 2012-02-12.
Note
La bibliothèque cliente de stockage .NET définit toujours la version du protocole REST (dans le paramètre api-version
) sur la version sur laquelle elle est basée.
Demandes par le biais d’un accès anonyme
Les demandes effectuées via l’accès anonyme sont gérées différemment, en fonction du type de compte de stockage sur lequel elles sont effectuées.
Pour les comptes de stockage à usage général
Si une demande anonyme adressée à un compte de stockage universel ne spécifie pas l’en-tête x-ms-version
et que la version par défaut du service n’a pas été définie à l’aide de Définir les propriétés du service Blob, le service utilise la version la plus ancienne possible pour traiter la demande. Toutefois, si le conteneur a été rendu public avec une Définir l’ACL conteneur opération effectuée à l’aide de la version 2009-09-19 ou ultérieure, la requête est traitée à l’aide de la version 2009-09-19.
Pour les comptes de stockage d’objets blob
Si une demande anonyme adressée à un compte de stockage Blob ne spécifie pas l’en-tête x-ms-version
et que la version par défaut du service n’a pas été définie à l’aide de Définir les propriétés du service Blob, le service utilise la version la plus ancienne possible pour traiter la demande. Pour un compte de stockage d’objets blob, la version la plus ancienne est 2014-02-14.
Problèmes connus
Cette section détaille les problèmes connus liés aux API REST stockage Azure.
message d’erreur InvalidHeaderValue
Dans de rares scénarios, les applications effectuant des appels d’API REST directs peuvent recevoir un message d’erreur InvalidHeaderValue
. L’erreur ressemble à l’exemple suivant :
HTTP/1.1 400 The value for one of the HTTP headers is not in the correct format.
Content-Length: 328
Content-Type: application/xml
Server: Microsoft-HTTPAPI/2.0
x-ms-request-id: <REMOVED>
Date: Fri, 19 May 2023 17:10:33 GMT
<?xml version="1.0" encoding="utf-8"?><Error><Code>InvalidHeaderValue</Code><Message>The value for one of the HTTP headers is not in the correct format.
RequestId:<REMOVED>
Time:2023-05-19T17:10:34.2972651Z</Message><HeaderName>x-ms-version</HeaderName><HeaderValue>yyyy-mm-dd</HeaderValue></Error>
Il est recommandé d’utiliser une version antérieure de l’API REST pour voir si le problème est résolu. Si le problème persiste ou si la recommandation n’est pas réalisable, veuillez ouvrir un ticket de support pour discuter d’autres options.
Voir aussi
- REST des services de stockage
- bonnes pratiques de contrôle de version
- prise en charge des versions du protocole pour les versions de la bibliothèque cliente .NET