Contrôle de version pour les services de stockage AzureVersioning for the Azure Storage services

Plusieurs versions des services de stockage Microsoft Azure sont prises en charge.The Microsoft Azure storage services support multiple versions. 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.To make a request against the storage services, you must specify the version that you want to use for that operation, unless the request is anonymous.

La version actuelle des services de stockage Azure est 2020-04-08, et l’utilisation de cette version est recommandée dans la mesure du possible.The current version of the Azure storage services is 2020-04-08, and using that version is recommended where 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 de stockage Azure.For a list of all other supported versions, and for information about using each version, see Previous Azure Storage service versions.

Version 2020-04-08Version 2020-04-08

La version 2020-04-08 du service comprend les fonctionnalités suivantes :The 2020-04-08 service version includes the following features:

  • Capacité de supprimer définitivement une version ou un instantané d’objet BLOB supprimé de manière réversible.The ability to permanently delete a soft-deleted blob version or snapshot. Pour plus d’informations, consultez supprimer un objet BLOB.For more information, see Delete Blob.
  • Les balises d' objet BLOB et Set Blob prennent désormais en charge l' x-ms-lease-id en-tête.Get Blob Tags and Set Blob Tags now support the x-ms-lease-id header.
  • Une nouvelle API Put Blob from URL autorise la création d’un objet blob de blocs à partir d’un objet BLOB existant.A new API Put Blob from URL allows a block blob to be created from an existing blob.
  • Possibilité de spécifier la racine du protocole et de l’écrasement lors de la création d’un partage de fichiers.The ability to specify protocol and squash root when creating a File Share. La racine d’écrasement peut également être définie avec les Propriétés de partage Set.Squash root can also be set with Set Share Properties.

Spécification des versions de service dans les demandesSpecifying service versions in requests

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.How you specify the version of the storage services to use for a request relates to how that request is authorized. Les sections suivantes décrivent les options d’autorisation et la spécification de la version du service pour chacune d’elles :The following sections describe authorization options and how the service version is specified for each:

  • Demandes utilisant un jeton OAuth 2,0 de Azure Active Directory (Azure AD).Requests using an OAuth 2.0 token from 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.To authorize a request with Azure AD, pass the x-ms-version header on the request with a service version of 2017-11-09 or higher. Pour plus d’informations, consultez appeler des opérations de stockage avec des jetons OAuth dans authorize with Azure Active Directory.For more information, see Call storage operations with OAuth tokens in Authorize with Azure Active Directory.

  • Demandes utilisant Shared Key ou Shared Key LiteRequests using Shared Key or Shared Key Lite. Pour autoriser une demande avec Shared Key/Shared Key Lite, transmettez l' x-ms-version en-tête à la demande.To authorize a request with Shared Key/Shared Key Lite, pass the x-ms-version header on the request. 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.In the case of the Blob service, you can specify the default version for all requests by calling Set Blob Service Properties.

  • Demandes utilisant une signature d’accès partagé (SAP).Requests using a shared access signature (SAS). Vous pouvez spécifier deux options de contrôle de version pour une signature d'accès partagé.You can specify two versioning options on a shared access signature. L' api-version en-tête facultatif indique la version du service à utiliser pour exécuter l’opération de l’API.The optional api-version header indicates which service version to use to execute the API operation. 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é.The required SignedVersion (sv) parameter specifies the service version to use to authorize the request made with the SAS. 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.If the api-version header is not specified, then the value of the SignedVersion (sv) parameter also indicates the version to use to execute the API operation.

  • Demandes utilisant l'accès anonymeRequests using anonymous access. 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).In the case of anonymous access against the Blob service, no version is passed in; the heuristics for which version is used for the request are described below.

Demandes autorisées à l’aide de Azure AD, Shared Key ou Shared Key LiteRequests authorized using Azure AD, Shared Key, or 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.To authorize a request with Azure AD, Shared Key, or Shared Key Lite, specify the x-ms-version header on the request. La valeur d'en-tête de demande x-ms-version doit être spécifiée au format AAAA-MM-JJ.The x-ms-version request header value must be specified in the format YYYY-MM-DD. Par exemple :For example:

Request Headers:  
x-ms-version: 2017-07-29

Les règles suivantes indiquent comment ces demandes sont évaluées pour déterminer la version à utiliser lors du traitement de la demande.The following rules indicate how these requests are evaluated to determine the version to use in processing the request.

  • Si une demande a un en-tête valide x-ms-version, le service de stockage utilise la version spécifiée.If a request has a valid x-ms-version header, the storage service uses the specified version. 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.All requests to the Table and Queue services that do not use a shared access signature must specify an x-ms-version header. 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.All requests to the Blob service that do not use a shared access signature must specify an x-ms-version header unless the default version has been set, as described below.

  • 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.If a request to the Blob service does not have an x-ms-version header, but the account owner has set a default version using Set Blob Service Properties, then the specified default version is used as the version for the request.

Demandes autorisées avec une signature d’accès partagéRequests authorized with a shared access signature

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 :A shared access signature (SAS) generated using version 2014-02-14 or later supports two versioning options:

  • 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).The api-version query parameter defines the REST protocol version to use for processing a request made using the SAS.

  • Le SignedVersion (sv) paramètre de requête définit la version de la signature d’accès partagé à utiliser pour l’autorisation.The SignedVersion (sv) query parameter defines the SAS version to use for authorization.

Le SignedVersion paramètre de requête est utilisé pour l’autorisation lorsqu’un client effectue une demande à l’aide de la SAP.The SignedVersion query parameter is used for authorization when a client makes a request using the SAS. 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.Authorization parameters such as si, sr, sp, sig, st, se, tn, spk, srk, epk, and erk are all interpreted using the specified version.

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.REST protocol parameters such as rscc, rscd, rsce, rscl, and rsct are enforced using the version provided in the api-version parameter header. 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.If the api-version header is not specified, then the service version provided for SignedVersion is used.

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.The api-version parameter is not part of the string-to-sign in the authorization header, as described in Create a service SAS.

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.The following table explains the versioning scheme used by the service for authorization and for calling the REST protocol when the SignedVersion parameter is set to version 2014-02-14 or later.

Valeur du paramètre api-versionValue of api-version parameter Version utilisée pour l’autorisationVersion used for authorization Version utilisée pour le comportement de protocoleVersion used for protocol behavior
Non spécifiéNot specified Version spécifiée dans le sv paramètreVersion specified in the sv parameter Version spécifiée dans le sv paramètreVersion specified in the sv parameter
N'importe quelle version valide des services de stockage, au format XXXX-XX-XXAny valid storage services version in format XXXX-XX-XX Version spécifiée dans le sv paramètreVersion specified in the sv parameter N'importe quelle version valide des services de stockage, au format XXXX-XX-XXValid storage services version XXXX-XX-XX

Exemple 1Example 1

L’exemple de demande suivant appelle des objets BLOB de liste avec sv=2015-04-05 et sans le api-version paramètre.The following sample request calls List Blobs with sv=2015-04-05, and without the api-version parameter.

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 uthenticates 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.In this case, the service uthenticates and authorizes the request using version 2015-04-05 and also executes the operation using version 2015-04-05.

Exemple 2Example 2

L’exemple de demande suivant appelle la liste d’objets BLOB avec sv=2015-04-05 et avec le api-version paramètre.The following sample request calls List Blobs with sv=2015-04-05 and with the api-version parameter.

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.Here, the service authorizes the request using version 2015-04-05 and executes the operation using 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.The .NET Storage Client Library will always set the REST protocol version (in the api-version parameter) to the version that it is based on.

Demandes via un accès anonymeRequests via anonymous access

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.Requests made via anonymous access are handled differently depending on the type of storage account they are made against.

Pour les comptes de stockage à usage généralFor general-purpose storage accounts

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.If an anonymous request to a general-purpose storage account does not specify the x-ms-version header, and the default version for the service has not been set using Set Blob Service Properties, then the service uses the earliest possible version to process the request. 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.However, if the container was made public with a Set Container ACL operation performed using version 2009-09-19 or newer, then the request is processed using version 2009-09-19.

Pour les comptes de stockage d’objets BLOBFor Blob storage accounts

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.If an anonymous request to a Blob storage account does not specify the x-ms-version header, and the default version for the service has not been set using Set Blob Service Properties, then the service uses the earliest possible version to process the request. Pour un compte de stockage d’objets BLOB, la version la plus récente possible est 2014-02-14.For a Blob storage account, the earliest possible version is 2014-02-14.

Voir aussiSee also