Sdílet prostřednictvím


Správa verzí pro Azure Storage

Azure Storage podporuje více verzí. Pokud chcete provést požadavek na služby Storage a tento požadavek není anonymní, musíte zadat verzi, kterou pro danou operaci chcete použít.

Aktuální verze služeb Azure Storage je 2024-08-04 a doporučujeme ji používat tam, kde je to možné. Seznam všech ostatních podporovaných verzí a informace o používání jednotlivých verzí najdete v tématu Předchozí verze služby Azure Storage.

Verze služby z 8. 8. 2024 obsahuje následující funkce:

Určení verzí služby v požadavcích

Způsob, jakým určíte verzi služeb úložiště, které se mají použít pro žádost, souvisí s tím, jak je tato žádost autorizována. Následující části popisují možnosti autorizace a způsob, jakým je pro každou z nich zadaná verze služby.

  • Požadavky, které používají token OAuth 2.0 od Microsoft Entra: Pokud chcete autorizovat žádost s ID Microsoft Entra, předejte x-ms-version hlavičku žádosti s verzí služby 2017-11-09 nebo vyšší. Další informace najdete v tématu Volání operací úložiště s tokeny OAuth v tématu Autorizace pomocí Id Microsoft Entra.

  • Požadavky, které používají sdílený klíč nebo sdílený klíč Lite: Pokud chcete autorizovat žádost se sdíleným klíčem nebo sdíleným klíčem Lite, předejte hlavičku x-ms-version požadavku. V případě služby Azure Blob Storage můžete zadat výchozí verzi pro všechny požadavky voláním nastavit vlastnosti služby Blob Service.

  • Požadavky, které používají sdílený přístupový podpis (SAS): U sdíleného přístupového podpisu můžete zadat dvě možnosti správy verzí. Volitelná api-version hlavička označuje, jakou verzi služby se má použít ke spuštění operace rozhraní API. Požadovaný SignedVersion (sv) parametr určuje verzi služby, která se má použít k autorizaci požadavku vytvořeného pomocí SAS. Pokud hlavička api-version není zadaná, hodnota parametru SignedVersion (sv) také označuje verzi, která se má použít ke spuštění operace rozhraní API.

  • Požadavky, které používají anonymní přístup: V případě anonymního přístupu ke službě Blob Storage se nepředá žádná verze. Heuristika pro určení verze, která se má použít pro požadavek, jsou popsány v dalších částech.

Autorizace žádostí pomocí Microsoft Entra ID, sdíleného klíče nebo sdíleného klíče Lite

Pokud chcete autorizovat žádost pomocí Microsoft Entra ID, sdíleného klíče nebo sdíleného klíče Lite, zadejte x-ms-version hlavičku požadavku. Hodnota x-ms-version hlavičky požadavku musí být zadána ve formátu RRRR-MM-DD. Příklad:

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

Následující pravidla popisují, jak se tyto požadavky vyhodnocují, aby se určila verze, která se má použít ke zpracování požadavku.

  • Pokud má požadavek platnou x-ms-version hlavičku, služba úložiště použije zadanou verzi. Všechny požadavky na Azure Table Storage a Azure Queue Storage, které nepoužívají sdílený přístupový podpis, musí zadat hlavičku x-ms-version . Všechny požadavky na službu Blob Storage, které nepoužívají sdílený přístupový podpis, musí obsahovat hlavičku x-ms-version , pokud není nastavená výchozí verze, jak je popsáno v následujícím odstavci.

  • Pokud požadavek na Blob Storage nemá hlavičku x-ms-version , ale vlastník účtu nastavil výchozí verzi pomocí operace Nastavit vlastnosti služby Blob Service , použije se jako verze pro požadavek zadaná výchozí verze.

Autorizace žádostí pomocí sdíleného přístupového podpisu

Sdílený přístupový podpis (SAS) vygenerovaný pomocí verze 2014-02-14 nebo novější podporuje dvě možnosti správy verzí:

  • Parametr api-version dotazu definuje verzi protokolu REST, která se má použít ke zpracování požadavku vytvořeného pomocí SAS.

  • Parametr SignedVersion (sv) dotazu definuje verzi SAS, která se má použít k autorizaci.

Parametr SignedVersion dotazu se používá k autorizaci, když klient odešle požadavek pomocí SAS. Parametry autorizace, jako sijsou , sr, , sttnsigspspksrkse, epka erk , jsou interpretovány pomocí zadané verze.

Parametry protokolu REST, jako rsccjsou , rscerscd, rsclarsct, se vynucují pomocí verze, která je k dispozici v hlavičce parametruapi-version. Pokud hlavička api-version není zadaná, použije se verze služby, pro kterou je k dispozici SignedVersion .

Parametr api-version není součástí hlavičky autorizace typu string-to-sign, jak je popsáno v tématu Vytvoření SAS služby.

Následující tabulka vysvětluje schéma správy verzí, které služba používá k autorizaci a volání protokolu REST, pokud SignedVersion je parametr nastavený na verzi 2014-02-14 nebo novější.

Hodnota parametru api-version Verze použitá k autorizaci Verze používaná pro chování protokolu
Nezadá se Verze zadaná v parametru sv Verze zadaná v parametru sv
Libovolná platná verze služeb úložiště ve formátu XXXX-XX-XX Verze zadaná v parametru sv Platná verze služeb úložiště XXXX-XX-XX

Příklad 1

Následující ukázkový požadavek volá výpis objektů blob pomocí sv=2015-04-05a bez parametru api-version .

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

V tomto případě služba ověří a autorizuje požadavek pomocí verze 2015-04-05 a spustí operaci pomocí verze 2015-04-05.

Příklad 2

Následující ukázkový požadavek volá výpis objektů blob pomocí sv=2015-04-05 a s parametrem 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

Tady služba autorizuje požadavek pomocí verze 2015-04-05 a spustí operaci pomocí verze 2012-02-12.

Poznámka

Klientská knihovna .NET Storage vždy nastaví verzi protokolu REST (v parametru api-version ) na verzi, na které je založena.

Žádosti prostřednictvím anonymního přístupu

Požadavky, které se provádějí prostřednictvím anonymního přístupu, se zpracovávají odlišně v závislosti na typu účtu úložiště, pro který jsou vytvořené.

Účty úložiště pro obecné účely

Pokud anonymní požadavek na účet úložiště pro obecné účely neurčuje hlavičku x-ms-version a výchozí verze pro službu nebyla nastavena pomocí nastavení vlastností služby Blob Service, služba ke zpracování žádosti použije nejstarší možnou verzi. Pokud se ale kontejner zveřejnil pomocí operace Set Container ACL , která byla provedena pomocí verze 2009-09-19 nebo novější, zpracuje se požadavek pomocí verze 2009-09-19.

Pro účty Blob Storage

Pokud anonymní požadavek na účet služby Blob Storage hlavičku x-ms-version neurčuje a výchozí verze pro službu nebyla nastavena pomocí nastavení vlastností služby Blob, služba ke zpracování žádosti použije nejstarší možnou verzi. Pro účet Blob Storage je nejstarší možná verze 2014-02-14.

Známé problémy

Tato část popisuje známé problémy s rozhraními REST API služby Azure Storage.

InvalidHeaderValue chybová zpráva

Ve výjimečných scénářích můžou aplikace provádějící přímá volání rozhraní REST API obdržet chybovou InvalidHeaderValue zprávu. Chyba vypadá podobně jako v následujícím příkladu:

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> 

Doporučujeme použít starší verzi rozhraní REST API, abyste zjistili, jestli se problém vyřeší. Pokud problém přetrvává nebo pokud doporučení není proveditelné, otevřete lístek podpory a prodiskutujte další možnosti.

Viz také