Versiebeheer voor Azure Storage
Azure Storage ondersteunt meerdere versies. Als u een aanvraag wilt indienen voor de opslagservices, moet u de versie opgeven die u voor die bewerking wilt gebruiken, tenzij de aanvraag anoniem is.
De huidige versie van de Azure-opslagservices is 2024-11-04 en we raden u aan deze waar mogelijk te gebruiken. Zie voor een lijst met alle andere ondersteunde versies en voor informatie over het gebruik van elke versie eerdere versies van de Azure Storage-service.
De serviceversie 2024-11-04 bevat de volgende functies:
- Ondersteuning voor verificatie op basis van tokens voor alle API's van het gegevensvlak in de bestandsservice. Zie Autoriseren met Microsoft Entra IDvoor meer informatie.
- Ondersteuning voor betaalde bursting op Premium-bestandsshareaccounts. Deze functie kan worden ingeschakeld met de Share- maken en Eigenschappen van share instellen API's.
- Ondersteuning voor de binaire indeling bij het verkrijgen en instellen van bestandsmachtigingen in de bestandsservice. Zie Machtiging maken en Machtiging ophalen voor meer informatie
Serviceversies opgeven in aanvragen
Hoe u de versie opgeeft van de opslagservices die moeten worden gebruikt voor een aanvraag, heeft betrekking op hoe deze aanvraag is geautoriseerd. In de volgende secties worden autorisatieopties beschreven en hoe de serviceversie voor elke versie wordt opgegeven.
aanvragen die gebruikmaken van een OAuth 2.0-token van Microsoft Entra: als u een aanvraag met Microsoft Entra-id wilt autoriseren, geeft u de
x-ms-version
header op de aanvraag door met een serviceversie van 2017-11-09 of hoger. Zie Opslagbewerkingen aanroepen met OAuth-tokens in Autoriseren met Microsoft Entra IDvoor meer informatie.aanvragen die gebruikmaken van gedeelde sleutel of gedeelde sleutel lite: als u een aanvraag wilt autoriseren met een gedeelde sleutel of gedeelde sleutel lite, geeft u de
x-ms-version
header op de aanvraag door. In het geval van Azure Blob Storage kunt u de standaardversie voor alle aanvragen opgeven door Blob Service-eigenschappen instellenaan te roepen.aanvragen die gebruikmaken van een SAS-(Shared Access Signature): u kunt twee opties voor versiebeheer opgeven voor een shared access Signature. De optionele
api-version
header geeft aan welke serviceversie moet worden gebruikt om de API-bewerking uit te voeren. De vereisteSignedVersion (sv)
parameter specificeert de serviceversie die moet worden gebruikt om de aanvraag te autoriseren die is gedaan met de SAS. Als deapi-version
header niet is opgegeven, geeft de waarde van de parameterSignedVersion (sv)
ook de versie aan die moet worden gebruikt om de API-bewerking uit te voeren.aanvragen die gebruikmaken van anonieme toegang: in het geval van anonieme toegang tegen Blob Storage wordt er geen versie doorgegeven. De heuristiek voor het bepalen welke versie voor de aanvraag moet worden gebruikt, worden beschreven in de volgende secties.
Aanvragen autoriseren met behulp van Microsoft Entra ID, Gedeelde sleutel of Gedeelde Sleutel Lite
Als u een aanvraag wilt autoriseren met Microsoft Entra ID, Gedeelde sleutel of Gedeelde Sleutel Lite, geeft u de x-ms-version
header op voor de aanvraag. De x-ms-version
aanvraagheaderwaarde moet worden opgegeven in de notatie JJJJ-MM-DD. Bijvoorbeeld:
Request Headers:
x-ms-version: 2020-04-08
In de volgende regels wordt beschreven hoe deze aanvragen worden geëvalueerd om te bepalen welke versie moet worden gebruikt om de aanvraag te verwerken.
Als een aanvraag een geldige
x-ms-version
header heeft, gebruikt de opslagservice de opgegeven versie. Alle aanvragen voor Azure Table Storage en Azure Queue Storage die geen handtekening voor gedeelde toegang gebruiken, moeten eenx-ms-version
-header opgeven. Alle aanvragen voor Blob Storage die geen handtekening voor gedeelde toegang gebruiken, moeten eenx-ms-version
-header opgeven, tenzij de standaardversie is ingesteld, zoals beschreven in de volgende alinea.Als een aanvraag voor Blob Storage geen
x-ms-version
header heeft, maar de accounteigenaar een standaardversie heeft ingesteld met behulp van de Eigenschappen van blobservice instellen bewerking, wordt de opgegeven standaardversie gebruikt als de versie voor de aanvraag.
Aanvragen autoriseren met een handtekening voor gedeelde toegang
Een Shared Access Signature (SAS) die wordt gegenereerd met versie 2014-02-14 of hoger, ondersteunt twee opties voor versiebeheer:
De
api-version
queryparameter definieert de REST-protocolversie die moet worden gebruikt voor het verwerken van een aanvraag die wordt gedaan met behulp van de SAS.De
SignedVersion (sv)
queryparameter definieert de SAS-versie die moet worden gebruikt voor autorisatie.
De SignedVersion
queryparameter wordt gebruikt voor autorisatie wanneer een client een aanvraag doet met behulp van de SAS. Autorisatieparameters zoals si
, sr
, sp
, sig
, st
, se
, tn
, spk
, srk
, epk
en erk
worden allemaal geïnterpreteerd met behulp van de opgegeven versie.
REST-protocolparameters zoals rscc
, rscd
, rsce
, rscl
en rsct
worden afgedwongen met behulp van de versie die is opgegeven in de api-version
parameterheader. Als de api-version
header niet is opgegeven, wordt de serviceversie gebruikt die wordt geleverd voor SignedVersion
.
De parameter api-version
maakt geen deel uit van de tekenreeks-naar-aanmelding in de autorisatieheader, zoals beschreven in Een service-SAS-maken.
In de volgende tabel wordt het versiebeheerschema uitgelegd dat wordt gebruikt door de service voor autorisatie en voor het aanroepen van het REST-protocol wanneer de parameter SignedVersion
is ingesteld op versie 2014-02-14 of hoger.
Waarde van api-versie parameter | Versie die wordt gebruikt voor autorisatie | Versie die wordt gebruikt voor protocolgedrag |
---|---|---|
Niet opgegeven | Versie die is opgegeven in de parameter sv |
Versie die is opgegeven in de parameter sv |
Elke geldige versie van opslagservices in indeling XXXX-XX-XX |
Versie die is opgegeven in de parameter sv |
Geldige versie van opslagservices XXXX-XX-XX |
Voorbeeld 1
In de volgende voorbeeldaanvraag wordt list-blobs aanroepen met sv=2015-04-05
en zonder de parameter api-version
.
https://myaccount.blob.core.windows.net/mycontainer?restype=container&comp=list&sv=2015-04-05&si=readpolicy&sig=a39 %2BYozJhGp6miujGymjRpN8tsrQfLo9Z3i8IRyIpnQ%3d
In dit geval verifieert en autoriseert de service de aanvraag met versie 2015-04-05 en wordt de bewerking uitgevoerd met versie 2015-04-05.
Voorbeeld 2
De volgende voorbeeldaanvraag roept List Blobs- aan met sv=2015-04-05
en met de parameter 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
Hier autoriseert de service de aanvraag met versie 2015-04-05 en wordt de bewerking uitgevoerd met versie 2012-02-12.
Notitie
De .NET Storage-clientbibliotheek stelt altijd de REST-protocolversie (in de parameter api-version
) in op de versie waarop deze is gebaseerd.
Aanvragen via anonieme toegang
Aanvragen die via anonieme toegang worden gedaan, worden anders verwerkt, afhankelijk van het type opslagaccount waarop ze worden uitgevoerd.
Voor opslagaccounts voor algemeen gebruik
Als een anonieme aanvraag voor een opslagaccount voor algemeen gebruik de x-ms-version
header niet opgeeft en de standaardversie voor de service niet is ingesteld met behulp van Blob Service-eigenschappen instellen, gebruikt de service de vroegst mogelijke versie om de aanvraag te verwerken. Als de container echter openbaar is gemaakt met een Container-ACL instellen bewerking die is uitgevoerd met versie 2009-09-19 of hoger, wordt de aanvraag verwerkt met versie 2009-09-19.
Voor Blob Storage-accounts
Als een anonieme aanvraag voor een Blob Storage-account de x-ms-version
header niet opgeeft en de standaardversie voor de service niet is ingesteld met behulp van Blob Service-eigenschappen instellen, gebruikt de service de vroegst mogelijke versie om de aanvraag te verwerken. Voor een Blob Storage-account is de vroegst mogelijke versie 2014-02-14.
Bekende problemen
In deze sectie vindt u informatie over bekende problemen voor de REST API's van Azure Storage.
InvalidHeaderValue
foutbericht
In zeldzame scenario's kunnen toepassingen die directe REST API-aanroepen maken, een InvalidHeaderValue
foutbericht ontvangen. De fout ziet er ongeveer als volgt uit:
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>
Het is raadzaam om een eerdere REST API-versie te gebruiken om te zien of het probleem wordt opgelost. Als het probleem zich blijft voordoen of als de aanbeveling niet haalbaar is, een ondersteuningsticket openen om meer opties te bespreken.