Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Flera Blob-tjänstoperationer stödjer användningen av villkorliga huvuden. Du kan ange villkorliga huvuden för att utföra en operation endast när ett angivet villkor är uppfyllt.
Blob-tjänsten följer HTTP/1.1-protokollspecifikationen för villkorliga huvuden.
Stödda villkorliga huvuden
De stödda villkorliga huvuden beskrivs i följande tabell.
| Villkorlig header | Description |
|---|---|
If-Modified-Since |
Ett DateTime värde. Datumformatet följer RFC 1123. För mer information, se Representation av datum-tidsvärden i rubriker. Ange att denna header endast utför operationen om resursen har ändrats sedan den angivna tiden. |
If-Unmodified-Since |
Ett DateTime värde. Datumformatet följer RFC 1123. För mer information, se Representation av datum-tidsvärden i rubriker. Ange denna header för att utföra operationen endast om resursen inte ändrades före angivet datum/tid. |
If-Match |
Ett ETag-värde. Ange det här huvudet för att utföra åtgärden endast om resursens ETag matchar det angivna värdet. För versionerna 2011-08-18 och nyare kan ETag anges inom citattecken. |
If-None-Match |
Ett ETag-värde eller jokertecknet (*). Ange denna header för att utföra operationen endast om resursens ETag inte matchar det angivna värdet. För versionerna 2011-08-18 och nyare kan ETag anges inom citattecken. Ange jokertecken (*) för att utföra operationen endast om resursen inte existerar, och misslyckas operationen om den finns. |
Specificering av villkorliga huvuden för blob-tjänstläsningsoperationer i version 2013-08-15 eller senare
Från och med version 2013-08-15 stöder Get Blob - och Get Blob Properties-operationerna flera villkorliga headers. Du kan ange vilken kombination som helst av stödda villkorliga headers. Blob-tjänsten utvärderar dessa villkor enligt följande uttryck:
If-Match && If-Unmodified-Since && (If-None-Match || If-Modified-Since)
Du kan också ange flera kommaseparerade värden för If-Match och If-None-Match. Om du specificerar flera värden för If-Match, utför Blob-tjänsten en logisk OR operation på alla givna värden innan hela uttrycket utvärderas. Om du specificerar flera värden för if-None-Match, utför tjänsten en logisk AND operation innan hela uttrycket utvärderas. Att ange flera värden för If-Modified-Since och If-Unmodified-Since stöds inte och resulterar i felkod 400 (Bad Request).
Denna funktion är aktiverad för att uppfylla HTTP/1.1-specifikationen. Den hanterar också scenarier där ett Content Delivery Network (CDN) eller proxyserver lägger till ytterligare villkorliga headers till en inflight-förfrågan. Följande exempel illustrerar flera olika kombinationer av villkorliga rubriker.
Exempel 1:
Tänk på en Get Blob-förfrågan som innehåller If-Match och If-Modified-Since headers. Följande tabell visar resultatet om headers utvärderas individuellt, och resultatet om de utvärderas i kombination.
| Villkorliga rubriker | Resultat om det utvärderas individuellt | Resultat om det utvärderas i kombination |
|---|---|---|
If-Match |
412 (Förkravet misslyckades) | 412 (Förkravet misslyckades) |
If-Modified-Since |
200 (OK) | 412 (Förkravet misslyckades) |
If-Match |
412 (Förkravet misslyckades) | 412 (Förkravet misslyckades) |
If-Modified-Since |
304 (ej modifierad) | 412 (Förkravet misslyckades) |
If-Match |
200 (OK) | 200 (OK) |
If-Modified-Since |
200 (OK) | 200 (OK) |
If-Match |
200 (OK) | 304 (ej modifierad) |
If-Modified-Since |
304 (ej modifierad) | 304 (ej modifierad) |
Exempel 2:
Tänk på en förfrågan som innehåller If-None-Match och If-Modified-Since headers.
| Villkorliga rubriker | Resultat om det utvärderas individuellt | Resultat om det utvärderas i kombination |
|---|---|---|
If-None-Match |
304 (ej modifierad) | 200 (OK) |
If-Modified-Since |
200 (OK) | 200 (OK) |
If-None-Match |
200 (OK) | 200 (OK) |
If-Modified-Since |
200 (OK) | 200 (OK) |
If-None-Match |
200 (OK) | 200 (OK) |
If-Modified-Since |
304 (ej modifierad) | 200 (OK) |
If-None-Match |
304 (ej modifierad) | 304 (ej modifierad) |
If-Modified-Since |
304 (ej modifierad) | 304 (ej modifierad) |
Exempel 3:
Tänk på en förfrågan som innehåller If-Modified-Since, If-Match, och If-Unmodified-Since headers.
| Villkorliga rubriker | Resultat om det utvärderas individuellt | Resultat om det utvärderas i kombination |
|---|---|---|
If-Modified-Since |
200 (OK) | 412 (Förkravet misslyckades) |
If-Match |
412 (Förkravet misslyckades) | 412 (Förkravet misslyckades) |
If-Unmodified-Since |
200 (OK) | 412 (Förkravet misslyckades) |
If-Modified-Since |
200 (OK) | 412 (Förkravet misslyckades) |
If-Match |
200 (OK) | 412 (Förkravet misslyckades) |
If-Unmodified-Since |
412 (Förkravet misslyckades) | 412 (Förkravet misslyckades) |
If-Modified-Since |
304 (ej modifierad) | 412 (Förkravet misslyckades) |
If-Match |
200 (OK) | 412 (Förkravet misslyckades) |
If-Unmodified-Since |
412 (Förkravet misslyckades) | 412 (Förkravet misslyckades) |
If-Modified-Since |
304 (ej modifierad) | 304 (ej modifierad) |
If-Match |
200 (OK) | 304 (ej modifierad) |
If-Unmodified-Since |
200 (OK) | 304 (ej modifierad) |
Exempel 4:
Betrakta en begäran som innehåller If-Modified-Since, If-None-Match, , If-Unmodified-Sinceoch If-Match rubriker.
| Kombination | Individuell http-statuskod | Få Blob-statusresultat |
|---|---|---|
If-Modified-Since |
200 (OK) | 200 (OK) |
If-None-Match |
200 (OK) | 200 (OK) |
If-Unmodified-Since |
200 (OK) | 200 (OK) |
If-Match |
200 (OK) | 200 (OK) |
If-Modified-Since |
200 (OK) | 412 (Förkravet misslyckades) |
If-None-Match |
304 (ej modifierad) | 412 (Förkravet misslyckades) |
If-Unmodified-Since |
412 (Förkravet misslyckades) | 412 (Förkravet misslyckades) |
If-Match |
200 (OK) | 412 (Förkravet misslyckades) |
If-Modified-Since |
200 (OK) | 200 (OK) |
If-None-Match |
304 (ej modifierad) | 200 (OK) |
If-Unmodified-Since |
200 (OK) | 200 (OK) |
If-Match |
200 (OK) | 200 (OK) |
If-Modified-Since |
304 (ej modifierad) | 412 (Förkravet misslyckades) |
If-None-Match |
200 (OK) | 412 (Förkravet misslyckades) |
If-Unmodified-Since |
200 (OK) | 412 (Förkravet misslyckades) |
If-Match |
412 (Förkravet misslyckades) | 412 (Förkravet misslyckades) |
If-Modified-Since |
304 (ej modifierad) | 412 (Förkravet misslyckades) |
If-None-Match |
200 (OK) | 412 (Förkravet misslyckades) |
If-Unmodified-Since |
412 (Förkravet misslyckades) | 412 (Förkravet misslyckades) |
If-Match |
412 (Förkravet misslyckades) | 412 (Förkravet misslyckades) |
If-Modified-Since |
304 (ej modifierad) | 200 (OK) |
If-None-Match |
200 (OK) | 200 (OK) |
If-Unmodified-Since |
200 (OK) | 200 (OK) |
If-Match |
200 (OK) | 200 (OK) |
If-Modified-Since |
304 (ej modifierad) | 412 (Förkravet misslyckades) |
If-None-Match |
304 (ej modifierad) | 412 (Förkravet misslyckades) |
If-Unmodified-Since |
412 (Förkravet misslyckades) | 412 (Förkravet misslyckades) |
If-Match |
200 (OK) | 412 (Förkravet misslyckades) |
Specificera villkorliga huvuden för läsoperationer i versioner före 2013-08-15, och för skrivoperationer (alla versioner)
När du anropar Blob-tjänstläsningsoperationer (Get Blob och Get Blob Properties) med versioner tidigare än 2013-08-15, och när du anropar vilken skrivoperation som helst oavsett version, tänk på följande överväganden:
Om en begäran specificerar både
If-None-MatchochIf-Modified-Sinceheaders, utvärderas begäran baserat på kriterierna som anges iIf-None-Match.Om en begäran specificerar både
If-MatchochIf-Unmodified-Sinceheaders, utvärderas begäran baserat på kriterierna som anges iIf-Match.Förutom de två kombinationerna av villkorliga huvuden som nämnts tidigare, kan en förfrågan endast specificera en enda villkorsbetingad huvud. Att specificera mer än en villkorlig header resulterar i statuskod 400 (
Bad Request).Om ett svar innehåller en ETag, verifiera versionen av förfrågan och svaret innan du behandlar ETag. Till exempel returnerar version 2011-08-18 och senare en citerad ETag, men äldre versioner gör det inte. Se till att din ansökan kan behandla båda ETag-formaten innan de utvärderas.
RFC 2616 tillåter flera ETag-värden i en enda header, men förfrågningar till Blob-tjänsten kan endast innehålla ett ETag-värde. Att ange mer än ett ETag-värde resulterar i statuskod 400 (
Bad Request).
Operationer som stöder villkorliga huvuden
De operationer som stödjer villkorliga huvuden beskrivs i följande tabell.
| REST-drift | Typ av operation | Stödda villkorliga headers |
|---|---|---|
|
Lägg till block (version 2015-02-21 och senare) |
Skriv |
Om-Modifierat-Eftersom Om-Omodifierat-Eftersom If-Match Om-Ingen-Match x-ms-if-taggar |
|
Lägg till blockering från URL (version 2018-11-09 och senare) |
Skriv |
Om-Modifierat-Eftersom Om-Omodifierat-Eftersom If-Match Om-Ingen-Match x-ms-if-taggar |
| Kopiera blob | Läsa och skriva | För villkor på destinationsblobben: - Om-Modifierat-Eftersom - Om-Omodifierat-Eftersom - If-Match - Om-Ingen-Match - x-ms-if-taggar För villkor på källblobben: - x-ms-källa-om-modifierat-sedan - x-ms-källa-om-omodifierat-sedan - x-ms-källa-om-matchning - x-ms-källa-om-ingen-matchning - x-ms-source-if-tags |
| Ta bort blob | Skriv |
Om-Modifierat-Eftersom Om-Omodifierat-Eftersom If-Match Om-Ingen-Match x-ms-if-taggar x-ms-åtkomstnivå-om-modifierat-sedan x-ms-åtkomstnivå-om-omodifierat-sedan |
| Ta bort container | Skriv |
Om-Modifierat-Eftersom Om-Omodifierat-Eftersom |
| Hämta Blob | Läs |
Om-Modifierat-Eftersom Om-Omodifierat-Eftersom If-Match Om-Ingen-Match x-ms-if-taggar |
| Hämta blob-metadata | Läs |
Om-Modifierat-Eftersom Om-Omodifierat-Eftersom If-Match Om-Ingen-Match x-ms-if-taggar |
| Hämta blobegenskaper | Läs |
Om-Modifierat-Eftersom Om-Omodifierat-Eftersom If-Match Om-Ingen-Match x-ms-if-taggar |
|
Hämta blobtaggar |
Läs |
x-ms-if-taggar (version 2019-12-12 och senare) För villkor på blobben (version 2025-11-05 och senare): - x-ms-blob-om-modifierat-sedan - x-ms-blob-om-omodifierat-sedan - x-ms-blob-if-match - x-ms-blob-if-none-match |
| Få blocklistan | Läs | x-ms-if-taggar |
| Få sidintervall | Läs |
Om-Modifierat-Eftersom Om-Omodifierat-Eftersom If-Match Om-Ingen-Match x-ms-if-taggar |
| Låna blob | Skriv |
Om-Modifierat-Eftersom Om-Omodifierat-Eftersom If-Match Om-Ingen-Match x-ms-if-taggar |
| Lånecontainer | Skriv |
Om-Modifierat-Eftersom Om-Omodifierat-Eftersom |
| Lägg blob från URL | Skriv |
Om-Modifierat-Eftersom Om-Omodifierat-Eftersom If-Match Om-Ingen-Match För villkor på källblobben: - x-ms-källa-Om-Modifierat-Sedan - x-ms-källa-om-omodifierad-sedan - x-ms-källa-If-Match - x-ms-source-If-None-Match |
| Placera blob | Skriv |
Om-Modifierat-Eftersom Om-Omodifierat-Eftersom If-Match Om-Ingen-Match x-ms-if-taggar |
|
Lägg blockering från URL (version 2018-03-28 och senare) |
Skriv |
x-ms-källa-Om-Modifierat-Sedan x-ms-källa-Om-Omodifierat-Eftersom x-ms-källa-If-Match x-ms-source-If-None-Match |
| Lägg blocklista | Skriv |
Om-Modifierat-Eftersom Om-Omodifierat-Eftersom If-Match Om-Ingen-Match x-ms-if-taggar |
| Placera sida | Skriv |
Om-Modifierat-Eftersom Om-Omodifierat-Eftersom If-Match Om-Ingen-Match x-ms-if-taggar |
|
Lägg sida från URL (version 2018-11-09 och senare) |
Skriv |
Om-Modifierat-Eftersom Om-Omodifierat-Eftersom If-Match Om-Ingen-Match x-ms-if-taggar |
| Ange blobmetadata | Skriv |
Om-Modifierat-Eftersom Om-Omodifierat-Eftersom If-Match Om-Ingen-Match x-ms-if-taggar |
| Ange blobegenskaper | Skriv |
Om-Modifierat-Eftersom Om-Omodifierat-Eftersom If-Match Om-Ingen-Match x-ms-if-taggar |
| Ange container-ACL | Skriv |
Om-Modifierat-Eftersom Om-Omodifierat-Eftersom |
| Set-containermetadata | Skriv | Om-Modifierat-Eftersom |
|
Ange Blob-taggar |
Skriv |
x-ms-if-taggar (version 2019-12-12 och senare) För villkor på blobben (version 2025-11-05 och senare): - x-ms-blob-om-modifierat-sedan - x-ms-blob-om-omodifierat-sedan - x-ms-blob-if-match - x-ms-blob-if-none-match |
| Ange Blob-tier | Skriv | x-ms-if-taggar |
| Snapshot Blob | Läs |
Om-Modifierat-Eftersom Om-Omodifierat-Eftersom If-Match Om-Ingen-Match x-ms-if-taggar |
| Sätt Blob Immutability Policy | Skriv | Om-Omodifierat-Eftersom |
Följande Blob-tjänstdataoperationer stöder för närvarande inte villkorliga huvuden:
HTTP-svarskoder för operationer som stöder villkorliga huvuden
Om förfrågan innehåller en villkorlig header och resursen som efterfrågas inte uppfyller det specificerade villkoret, returnerar Blob-tjänsten en HTTP-svarskod. De svarskoder som returneras är i enlighet med HTTP/1.1-protokollspecifikationen (RFC 2616).
Metoder i Azure .NET:s klientbibliotek omvandlar dessa felsvarskoder till ett StorageException-objekt.
Läs Operationer
Följande tabell visar svarskoder som returneras för ett ouppfyllt villkor för varje villkorlig header när operationen är en läsoperation. Läsoperationer använder verben GET eller HEAD.
| Villkorlig header | Svarskod om villkoret inte uppfylls |
|---|---|
If-Modified-Since |
Ej modifierad (304 (ej modifierad)) |
If-Unmodified-Since |
Förkunskapen misslyckades (412 (Förkravet misslyckades)) |
If-Match |
Förkunskapen misslyckades (412 (Förkravet misslyckades)) |
If-None-Match |
Ej modifierad (304 (ej modifierad)) |
Se de tidigare exemplen för resultat när du använder flera headers med versionerna 2013-08-15 eller senare.
Skrivoperationer
Följande tabell visar svarskoder som returneras för ett ouppfyllt villkor för varje villkorshuvud när operationen är en skrivoperation. Skrivoperationer använder verben PUT eller DELETE.
| Villkorlig header | Svarskod om villkoret inte uppfylls |
|---|---|
If-Modified-Since |
Förkunskapen misslyckades (412 (Förkravet misslyckades)) |
If-Unmodified-Since |
Förkunskapen misslyckades (412 (Förkravet misslyckades)) |
If-Match |
Förkunskapen misslyckades (412 (Förkravet misslyckades)) |
If-None-Match |
Förkunskapen misslyckades (412 (Förkravet misslyckades)) |
Kopieringsoperationer
Följande tabell visar svarskoder som returneras för ett ouppfyllt villkor för varje villkorshuvud när operationen är en kopieringsoperation. Copy Blob-operationen använder verben PUT.
| Villkorlig header | Svarskod om villkoret inte uppfylls |
|---|---|
If-Modified-Since |
Förkunskapen misslyckades (412 (Förkravet misslyckades)) |
If-Unmodified-Since |
Förkunskapen misslyckades (412 (Förkravet misslyckades)) |
If-Match |
Förkunskapen misslyckades (412 (Förkravet misslyckades)) |
If-None-Match |
Förkunskapen misslyckades (412 (Förkravet misslyckades)) |
x-ms-source-if-modified-since |
Förkunskapen misslyckades (412 (Förkravet misslyckades)) |
x-ms-source-if-unmodified-since |
Förkunskapen misslyckades (412 (Förkravet misslyckades)) |
x-ms-source-if-match |
Förkunskapen misslyckades (412 (Förkravet misslyckades)) |
x-ms-source-if-none-match |
Förkunskapen misslyckades (412 (Förkravet misslyckades)) |
Taggar Villkorsoperationer
Utöver de standard HTTP-villkorliga huvuden som stöds av Blob-tjänsten stöder flera operationer även villkor mot taggarna på en blobresurs.
| Villkorlig header | Description |
|---|---|
x-ms-if-tags |
Version 2019-12-12 och nyare. Ett TagsPredicate värde. Ange denna header att utföra operationen endast om predikatet utvärderar till true mot blobbens taggar. |
x-ms-source-if-tags |
Version 2019-12-12 och nyare. Gäller endast för Copy Blob. Ett TagsPredicate värde. Ange denna header att utföra operationen endast om predikatet utvärderar till true mot källblobbens taggar. |
Om den x-ms-if-tags eller x-ms-source-if-tags villkorliga headern finns i en begäran och utvärderar TagsPredicate till false, returnerar Blob-tjänsten felkod 412 (Precondition Failed) för operationen.
Anroparen måste ha tillstånd att läsa taggarna på en blob för att använda de x-ms-if-tags villkorliga x-ms-source-if-tags huvuden.
Taggar predikatsyntax
Blob-tjänsten stöder en delmängd av ANSI SQL WHERE-klausulgrammatiken för värdet av TagsPredicate headern. Följande operatorer stöds:
| Operator | Description | Example |
|---|---|---|
= |
Lika | Status = 'In Progress' |
<> |
Inte lika | Status <> 'Done' |
> |
Större än | LastModified > '2018-06-18 20:51:26Z' |
>= |
Större än eller lika med | Priority >= '05' |
< |
Mindre än | Age < '032' |
<= |
Mindre än eller lika med | Reviewer <= 'Smith' |
AND |
Logiskt och | Name > 'C' AND Name < 'D'Age > '032' AND Age < '100' |
OR |
Logiskt eller | Status = 'Done' or LastModified > '2018-06-18 20:51:26Z' |
Alla taggvärden är strängar, och de stödda binära relationsoperatorerna använder en lexikografisk sortering av taggvärdena. För att stödja icke-strängdatatyper, inklusive siffror och datum, måste lämplig utfyllnad och sorterbar formatering användas. Tagvärden måste vara inneslutna i enkla citattecken.
Om taggnamn är vanliga SQL-identifierare kan de finnas där utan att komma undan. Om de innehåller några specialtecken måste de avgränsas med dubbla citattecken, såsom "TagName" = 'TagValue'.
Uttryck kan inkludera jämförelser för flera taggnamn och värden. Parentes (( och )) kan användas för att gruppera logiska uttryck och styra kanonisk ordning för operationer. A TagsPredicate kan inkludera högst 10 logiska operationer.
Lagringstjänsten avvisar alla förfrågningar som innehåller ett ogiltigt uttryck med felkod 400 (Bad Request).