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égesSignedVersion (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 aapi-version
fejléc nincs megadva, aSignedVersion (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écetx-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 egyx-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 si
a , sr
, sp
, sig
st
, se
, tn
, spk
srk
, epk
éserk
, a rendszer a megadott verzióval értelmezi.
Az olyan REST protokollparaméterek, mint rscc
a , 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.