Control de versiones para los servicios de Azure Storage

Los servicios de almacenamiento de Microsoft Azure admiten varias versiones. Para realizar una solicitud en los servicios de almacenamiento, debe especificar la versión que desea usar para esa operación, a menos que la solicitud sea anónima.

La versión actual de los servicios de almacenamiento de Azure es 2021-04-10 y se recomienda usar esa versión siempre que sea posible. Para obtener una lista de todas las demás versiones admitidas y para obtener información sobre el uso de cada versión, consulte Versiones anteriores del servicio Azure Storage.

Versión 2021-06-08

La versión del servicio 2021-06-08 incluye las siguientes características:

Especificación de versiones de servicio en solicitudes

Cómo se especifica la versión de los servicios de almacenamiento que se van a usar para una solicitud se relaciona con la autorización de esa solicitud. En las secciones siguientes se describen las opciones de autorización y cómo se especifica la versión del servicio para cada una:

  • Solicitudes que usan un token de OAuth 2.0 de Azure Active Directory (Azure AD). Para autorizar una solicitud con Azure AD, pase el x-ms-version encabezado en la solicitud con una versión de servicio de 2017-11-09 o posterior. Para obtener más información, consulte Llamada a operaciones de almacenamiento con tokens de OAuth en Autorización con Azure Active Directory.

  • Solicitudes mediante Shared Key o Shared Key Lite. Para autorizar una solicitud con Shared Key/Shared Key Lite, pase el x-ms-version encabezado en la solicitud. En el caso de Blob service, puede especificar la versión predeterminada para todas las solicitudes mediante una llamada a Establecer propiedades de Blob Service.

  • Solicitudes que usan una firma de acceso compartido (SAS). Puedes especificar dos opciones de control de versiones en una firma de acceso compartido. El encabezado opcional api-version indica la versión del servicio que se va a usar para ejecutar la operación de API. El parámetro necesario SignedVersion (sv) especifica la versión del servicio que se va a usar para autorizar la solicitud realizada con la SAS. Si no se especifica el encabezado api-version, el valor del parámetro SignedVersion (sv) también indica la versión que se usará para ejecutar la operación de API.

  • Solicitudes mediante acceso anónimo. En el caso del acceso anónimo en el servicio Blob, no se pasa ninguna versión; la heurística sobre qué versión se usa para la solicitud se describe a continuación.

Solicitudes autorizadas mediante Azure AD, Clave compartida o Shared Key Lite

Para autorizar una solicitud con Azure AD, Clave compartida o Shared Key Lite, especifique el x-ms-version encabezado en la solicitud. El valor del encabezado de solicitud x-ms-version debe especificarse con el formato AAAA-MM-DD. Por ejemplo:

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

Las reglas siguientes indican cómo se evalúan estas solicitudes para determinar la versión que se va a usar en el procesamiento de la solicitud.

  • Si una solicitud tiene un encabezado x-ms-version válido, el servicio de almacenamiento utiliza la versión especificada. Todas las solicitudes a los servicios Tabla y Cola que no utilizan una firma de acceso compartido deben especificar un encabezado x-ms-version. Todas las solicitudes al servicio Blob que no usan una firma de acceso compartido deben especificar un encabezado x-ms-version a menos que se haya establecido la versión predeterminada, como se describe a continuación.

  • Si una solicitud a Blob service no tiene un x-ms-version encabezado, pero el propietario de la cuenta ha establecido una versión predeterminada mediante Establecer propiedades de Blob Service, la versión predeterminada especificada se usa como versión de la solicitud.

Solicitudes autorizadas con una firma de acceso compartido

Una firma de acceso compartido (SAS) generada con la versión 2014-02-14 o posterior admite dos opciones de control de versiones:

  • El parámetro de consulta api-version define la versión del protocolo REST que se usará para procesar una solicitud realizada mediante la SAS.

  • El SignedVersion (sv) parámetro de consulta define la versión de SAS que se va a usar para la autorización.

El SignedVersion parámetro de consulta se usa para la autorización cuando un cliente realiza una solicitud mediante la SAS. Los parámetros de autorización como si, sr, , sp, sespksigtnsrkst, , , epky erk se interpretan con la versión especificada.

Los parámetros del protocolo REST como rscc, rscd, rsce, rscly rsct se aplican mediante la versión proporcionada en el encabezado de api-version parámetro. Si no se especifica el encabezado api-version, se usa la versión de servicios proporcionada para SignedVersion.

El api-version parámetro no forma parte de la cadena para iniciar sesión en el encabezado de autorización, como se describe en Creación de una SAS de servicio.

En la tabla siguiente se explica el esquema de control de versiones usado por el servicio para la autorización y para llamar al protocolo REST cuando el SignedVersion parámetro se establece en la versión 2014-02-14 o posterior.

Valor del parámetro api-version Versión usada para la autorización Versión usada para el comportamiento del protocolo
Sin especificar Versión especificada en el parámetro sv Versión especificada en el parámetro sv
Cualquier versión de servicios de almacenamiento en el formato XXXX-XX-XX Versión especificada en el parámetro sv Versión de servicios de almacenamiento válida XXXX-XX-XX

Ejemplo 1

La siguiente solicitud de ejemplo llama a List Blobs con sv=2015-04-05y sin el api-version parámetro .

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

En este caso, el servicio autentica y autoriza la solicitud mediante la versión 2015-04-05 y también ejecuta la operación con la versión 2015-04-05.

Ejemplo 2

La siguiente solicitud de ejemplo llama a List Blobs con sv=2015-04-05 y con el api-version parámetro .

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

Aquí, el servicio autoriza la solicitud mediante la versión 2015-04-05 y ejecuta la operación con la versión 2012-02-12.

Nota

La biblioteca de cliente de almacenamiento de .NET siempre establece la versión de protocolo REST (en el parámetro api-version) a la versión en que se basa.

Solicitudes a través del acceso anónimo

Las solicitudes realizadas a través del acceso anónimo se controlan de forma diferente en función del tipo de cuenta de almacenamiento con la que se realizan.

Para cuentas de almacenamiento de uso general

Si una solicitud anónima a una cuenta de almacenamiento de uso general no especifica el x-ms-version encabezado y la versión predeterminada del servicio no se ha establecido mediante Establecer propiedades de Blob Service, el servicio usa la versión más antigua posible para procesar la solicitud. Sin embargo, si el contenedor se hizo público con una operación Set Container ACL realizada con la versión 2009-09-19 o posterior, la solicitud se procesa con la versión 2009-09-19.

Para cuentas de Blob Storage

Si una solicitud anónima a una cuenta de Blob Storage no especifica el x-ms-version encabezado y la versión predeterminada del servicio no se ha establecido mediante Establecer propiedades de Blob Service, el servicio usa la versión más antigua posible para procesar la solicitud. Para una cuenta de Blob Storage, la versión más antigua posible es 2014-02-14.

Consulte también