Verziószámozás az Azure Storage-hoz

Az Azure Storage több verziót is támogat. A Storage-szolgáltatásokra irányuló kérelmekhez meg kell adnia azt a verziót, amelyet a művelethez szeretne használni, kivéve, ha a kérelem névtelen.

Az Azure Storage-szolgáltatások jelenlegi verziója 2023-11-03, és azt javasoljuk, hogy ahol lehetséges, használja. Az összes többi támogatott verzió listájáért és az egyes verziók használatáról az Azure Storage korábbi szolgáltatásverziói című témakörben olvashat.

A 2023-11-03 szolgáltatásverzió a következő funkciókat tartalmazza:

  • Nincsenek.

Szolgáltatásverziók megadása a kérelmekben

A kéréshez használandó tárolási szolgáltatások verziójának megadása a kérés engedélyezésének módjával kapcsolatos. A következő szakaszok ismertetik az engedélyezési lehetőségeket, valamint azt, hogy a szolgáltatásverzió hogyan van megadva mindegyikhez.

  • A Microsoft Entra OAuth 2.0-jogkivonatát használó kérések: Ha engedélyezni szeretne egy kérést Microsoft Entra ID, adja át a x-ms-version kérés fejlécét a 2017-11-09-es vagy újabb szolgáltatásverzióval. További információ: Storage-műveletek meghívása OAuth-jogkivonatokkal az Engedélyezés Microsoft Entra ID című témakörben.

  • Megosztott kulcsot vagy Megosztott kulcs Lite-ot használó kérések: A megosztott kulccsal vagy megosztott kulccsal rendelkező kérések engedélyezéséhez adja át a x-ms-version kérelem fejlécét. A Azure Blob Storage esetén az összes kérés alapértelmezett verzióját a Blobszolgáltatás tulajdonságainak beállítása meghívásával adhatja meg.

  • Közös hozzáférésű jogosultságkódot (SAS) használó kérések: Két verziószámozási beállítást adhat meg a közös hozzáférésű jogosultságkódhoz. A választható api-version fejléc azt jelzi, hogy az API-művelet végrehajtásához melyik szolgáltatásverziót kell használni. A szükséges SignedVersion (sv) paraméter határozza meg az SAS-vel küldött kérés engedélyezéséhez használandó szolgáltatásverziót. Ha a api-version fejléc nincs megadva, a SignedVersion (sv) paraméter értéke az API-művelet végrehajtásához használandó verziót is jelzi.

  • Névtelen hozzáférést használó kérések: A Blob Storage-hoz való névtelen hozzáférés esetén a rendszer nem ad át verziót. A kérelemhez használandó verzió meghatározásának heurisztikus leírását a következő szakaszok ismertetik.

Kérelmek engedélyezése Microsoft Entra ID, megosztott kulcs vagy megosztott kulcs lite használatával

Ha engedélyezni szeretne egy kérést Microsoft Entra ID, Megosztott kulcs vagy Megosztott kulcs Lite használatával, adja meg a x-ms-version kérelem fejlécét. A x-ms-version kérelemfejléc értékét ÉÉÉÉ-HH-NN formátumban kell megadni. Például:

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

A következő szabályok azt írják le, hogy a rendszer hogyan értékeli ki ezeket a kéréseket annak meghatározásához, hogy melyik verziót használja a kérés feldolgozásához.

  • Ha egy kérelem érvényes x-ms-version fejléccel rendelkezik, a tárolási szolgáltatás a megadott verziót használja. Az Azure Table Storage-ra és az Azure Queue Storage-ra irányuló összes olyan kérésnek, amely nem használ közös hozzáférésű jogosultságkódot, meg kell adnia egy fejlécet x-ms-version . A Blob Storage-ra irányuló minden olyan kérésnek, amely nem használ közös hozzáférésű jogosultságkódot, meg kell adnia egy x-ms-version fejlécet, kivéve, ha az alapértelmezett verzió be van állítva a következő bekezdésben leírtak szerint.

  • Ha a Blob Storage-nak küldött kérésnek nincs x-ms-version fejléce, de a fióktulajdonos beállított egy alapértelmezett verziót a Blob szolgáltatás tulajdonságainak beállítása művelettel, a rendszer a megadott alapértelmezett verziót használja a kérés verziójaként.

Kérelmek engedélyezése közös hozzáférésű jogosultságkód használatával

A 2014-02-14-es vagy újabb verzióval létrehozott közös hozzáférésű jogosultságkód (SAS) két verziószámozási lehetőséget támogat:

  • A api-version lekérdezési paraméter határozza meg a SAS használatával végrehajtott kérések feldolgozásához használandó REST protokollverziót.

  • A SignedVersion (sv) lekérdezési paraméter határozza meg az engedélyezéshez használni kívánt SAS-verziót.

A SignedVersion lekérdezési paraméter akkor használatos az engedélyezéshez, ha egy ügyfél kérést küld az SAS használatával. Az olyan engedélyezési paramétereket, mint sia , sr, sp, sigst, se, tn, spksrk, epkéserk, a rendszer a megadott verzióval értelmezi.

Az olyan REST protokollparaméterek, mint rscca , rscd, rsce, rsclés rsct a paraméter fejlécében api-version megadott verzióval vannak kényszerítve. Ha a api-version fejléc nincs megadva, a rendszer a megadott szolgáltatásverziót SignedVersion használja.

A api-version paraméter nem része az engedélyezési fejlécben található sztring-bejelentkezésnek, ahogy azt a Szolgáltatás SAS létrehozása című cikkben leírtuk.

Az alábbi táblázat ismerteti a szolgáltatás által az engedélyezéshez és a REST protokoll meghívásához használt verziószámozási sémát, ha a paraméter a SignedVersion 2014-02-14-es vagy újabb verzióra van állítva.

Az API-version paraméter értéke Engedélyezéshez használt verzió A protokoll viselkedéséhez használt verzió
Nincs megadva A paraméterben sv megadott verzió A paraméterben sv megadott verzió
Bármely érvényes tárolási szolgáltatási verzió formátumban XXXX-XX-XX A paraméterben sv megadott verzió A tárolási szolgáltatások érvényes verziója XXXX-XX-XX

1\. példa

Az alábbi mintakérés meghívja a list blobokat a api-version paraméterrel sv=2015-04-05és anélkül.

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

Ebben az esetben a szolgáltatás a 2015-04-05-ös verzióval hitelesíti és engedélyezi a kérést, és a 2015-04-05-ös verzióval futtatja a műveletet.

2\. példa

Az alábbi mintakérés meghívja a list blobokatsv=2015-04-05 a és a api-version paraméterrel.

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

Itt a szolgáltatás a 2015-04-05-ös verzióval engedélyezi a kérést, és a 2012-02-12-es verzióval futtatja a műveletet.

Megjegyzés

A .NET Storage-ügyfélkódtár mindig a REST protokoll verzióját állítja be (a api-version paraméterben) arra a verzióra, amelyen alapul.

Kérések névtelen hozzáféréssel

A névtelen hozzáféréssel küldött kérések kezelése a tárfiók típusától függően eltérő módon történik.

Általános célú tárfiókok esetén

Ha egy általános célú tárfiókra irányuló névtelen kérés nem adja meg a x-ms-version fejlécet, és a szolgáltatás alapértelmezett verziója nem lett beállítva a Blob szolgáltatás tulajdonságainak beállításával, a szolgáltatás a lehető legkorábbi verziót használja a kérés feldolgozásához. Ha azonban a tárolót a 2009-09-19-es vagy újabb verzióval végrehajtott Set Container ACL művelettel hozták nyilvánosságra, a kérés feldolgozása a 2009-09-19-es verzióval történik.

Blob Storage-fiókok esetén

Ha egy Blob Storage-fióknak küldött névtelen kérés nem adja meg a x-ms-version fejlécet, és a szolgáltatás alapértelmezett verziója nem lett beállítva a Blob szolgáltatás tulajdonságainak beállításával, a szolgáltatás a lehető legkorábbi verziót használja a kérés feldolgozásához. Blob Storage-fiók esetén a legkorábbi lehetséges verzió a 2014-02-14.

Ismert problémák

Ez a szakasz az Azure Storage REST API-k ismert problémáit ismerteti.

InvalidHeaderValue Hibaüzenet

Ritka esetekben a közvetlen REST API-hívásokat végző alkalmazások hibaüzenetet InvalidHeaderValue kaphatnak. A hiba az alábbi példához hasonlóan néz ki:

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> 

Javasoljuk, hogy egy korábbi REST API-verzióval ellenőrizze, hogy a probléma megoldódott-e. Ha a probléma továbbra is fennáll, vagy ha a javaslat nem valósítható meg, nyisson meg egy támogatási jegyet a további lehetőségek megvitatásához.

Lásd még