Controle de versão para os serviços de Armazenamento do Azure

Os serviços de armazenamento do Microsoft Azure suportam vários versões. Para fazer uma solicitação aos serviços de armazenamento, você deve especificar a versão que deseja usar para essa operação, a menos que a solicitação seja anônima.

A versão atual dos serviços de armazenamento do Azure é 2021-04-10 e usar essa versão é recomendado sempre que possível. Para obter uma lista de todas as outras versões com suporte e para obter informações sobre como usar cada versão, consulte versões anteriores do serviço Armazenamento do Azure.

Versão 2021-06-08

A versão do serviço 2021-06-08 inclui os seguintes recursos:

Especificando versões de serviço em solicitações

A forma como você especifica a versão dos serviços de armazenamento a serem usados para uma solicitação está relacionada à forma como essa solicitação é autorizada. As seções a seguir descrevem as opções de autorização e como a versão do serviço é especificada para cada uma:

  • Solicitações usando um token OAuth 2.0 de Azure Active Directory (Azure AD). Para autorizar uma solicitação com Azure AD, passe o x-ms-version cabeçalho na solicitação com uma versão de serviço de 2017-11-09 ou superior. Para obter mais informações, consulte operações de armazenamento de chamadas com tokens OAuth no Authorize com Azure Active Directory.

  • Solicitações usando a Chave Compartilhada ou a Chave Compartilhada Lite. Para autorizar uma solicitação com a Chave Compartilhada/Chave Compartilhada Lite, passe o x-ms-version cabeçalho na solicitação. No caso do serviço Blob, você pode especificar a versão padrão para todas as solicitações chamando Definir Propriedades do Serviço blob.

  • Solicitações usando uma SAS (assinatura de acesso compartilhado). Você pode especificar duas opções de controle de versão em uma assinatura de acesso compartilhado. O cabeçalho opcional api-version indica qual versão de serviço usar para executar a operação de API. O parâmetro necessário SignedVersion (sv) especifica a versão de serviço a ser usada para autorizar a solicitação feita com a SAS. Se o api-version cabeçalho não for especificado, o valor do SignedVersion (sv) parâmetro também indicará a versão a ser usada para executar a operação de API.

  • Solicitações usando acesso anônimo. No caso de acesso anônimo ao serviço Blob, nenhuma versão é passada; a heurística para a qual a versão é usada para a solicitação são descritas abaixo.

Solicitações autorizadas usando Azure AD, Chave Compartilhada ou Chave Compartilhada Lite

Para autorizar uma solicitação com Azure AD, Chave Compartilhada ou Chave Compartilhada Lite, especifique o x-ms-version cabeçalho na solicitação. O valor do cabeçalho de solicitação x-ms-version deve ser especificado no formato AAAA-MM-DD. Por exemplo:

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

As regras a seguir indicam como essas solicitações são avaliadas para determinar a versão a ser usada no processamento da solicitação.

  • Se uma solicitação tiver um cabeçalho x-ms-version válido, o serviço de armazenamento usará a versão especificada. Todas as solicitações aos serviços Tabela e Fila que não usam uma assinatura de acesso compartilhado devem especificar um cabeçalho x-ms-version. Todas as solicitações para o serviço Blob que não usam uma assinatura de acesso compartilhado devem especificar um x-ms-version cabeçalho, a menos que a versão padrão tenha sido definida, conforme descrito abaixo.

  • Se uma solicitação para o serviço Blob não tiver um x-ms-version cabeçalho, mas o proprietário da conta tiver definido uma versão padrão usando Definir Propriedades do Serviço blob, a versão padrão especificada será usada como a versão da solicitação.

Solicitações autorizadas com uma assinatura de acesso compartilhado

Uma SAS (assinatura de acesso compartilhado) gerada usando a versão 2014-02-14 ou posterior dá suporte a duas opções de controle de versão:

  • O api-version parâmetro de consulta define a versão do protocolo REST a ser usada para processar uma solicitação feita usando a SAS.

  • O SignedVersion (sv) parâmetro de consulta define a versão SAS a ser usada para autorização.

O SignedVersion parâmetro de consulta é usado para autorização quando um cliente faz uma solicitação usando a SAS. Parâmetros de autorização como si, , , sp, sigst, , se, tn, spk, , srk, e erkepktodos são interpretados usando a versão especificadasr.

Parâmetros de protocolo REST, como rscc, rscd, rsclrscee rsct são imposto usando a versão fornecida no cabeçalho do api-version parâmetro. Se o api-version cabeçalho não for especificado, a versão de serviço fornecida SignedVersion será usada.

O api-version parâmetro não faz parte da cadeia de caracteres para entrar no cabeçalho de autorização, conforme descrito em Criar uma SAS de serviço.

A tabela a seguir explica o esquema de controle de versão usado pelo serviço para autorização e para chamar o protocolo REST quando o SignedVersion parâmetro for definido como versão 2014-02-14 ou posterior.

Valor do parâmetro api-version Versão usada para autorização Versão usada para comportamento de protocolo
Não especificado Versão especificada no sv parâmetro Versão especificada no sv parâmetro
Qualquer versão válida dos serviços de armazenamento no formato XXXX-XX-XX Versão especificada no sv parâmetro Versão válida dos serviços de armazenamento XXXX-XX-XX

Exemplo 1

A solicitação de exemplo a seguir chama Blobs de Lista com sv=2015-04-05e sem o 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

Nesse caso, o serviço autentica e autoriza a solicitação usando a versão 2015-04-05 e também executa a operação usando a versão 2015-04-05.

Exemplo 2

A solicitação de exemplo a seguir chama Blobs de Lista com sv=2015-04-05 e com o 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

Aqui, o serviço autoriza a solicitação usando a versão 2015-04-05 e executa a operação usando a versão 2012-02-12.

Observação

A Biblioteca de Clientes do .NET Armazenamento sempre definirá a versão do api-version protocolo REST (no parâmetro) como a versão na qual ela se baseia.

Solicitações por meio de acesso anônimo

As solicitações feitas por meio de acesso anônimo são tratadas de forma diferente, dependendo do tipo de conta de armazenamento em que são feitas.

Para contas de armazenamento de uso geral

Se uma solicitação anônima para uma conta de armazenamento de uso geral não especificar o x-ms-version cabeçalho e a versão padrão do serviço não tiver sido definida usando Definir Propriedades do Serviço blob, o serviço usará a versão mais antiga possível para processar a solicitação. No entanto, se o contêiner foi tornado público com uma operação de ACL de contêiner definida executada usando a versão 2009-09-19 ou mais recente, a solicitação será processada usando a versão 2009-09-19.

Para contas de Armazenamento de Blobs

Se uma solicitação anônima para uma conta de armazenamento de Blobs não especificar o x-ms-version cabeçalho e a versão padrão do serviço não tiver sido definida usando Definir Propriedades do Serviço blob, o serviço usará a versão mais antiga possível para processar a solicitação. Para uma conta de armazenamento de Blobs, a versão mais antiga possível é 2014-02-14.

Confira também