Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Několik operací služby Blob podporuje použití podmíněných hlaviček. Můžete specifikovat podmíněné hlavičky tak, aby operace prováděly pouze tehdy, když je splněna zadaná podmínka.
Služba Blob se řídí specifikací protokolu HTTP/1.1 pro podmíněné hlavičky.
Podporované podmíněné hlavičky
Podporované podmíněné hlavičky jsou popsány v následující tabulce.
| Podmíněná hlavička | Description |
|---|---|
If-Modified-Since |
Hodnota DateTime . Formát data se řídí dokumentem RFC 1123. Pro více informací viz Reprezentace hodnot data a času v hlavičkách. Specifikujte tuto hlavičku tak, aby operace prováděla pouze tehdy, pokud byl zdroj od stanoveného času změněn. |
If-Unmodified-Since |
Hodnota DateTime . Formát data se řídí dokumentem RFC 1123. Pro více informací viz Reprezentace hodnot data a času v hlavičkách. Specifikujte tuto hlavičku tak, aby operace prováděla pouze tehdy, pokud zdroj nebyl před stanoveným datem/časem změněn. |
If-Match |
Hodnota ETag. Zadejte tuto hlavičku, aby se operace provedla pouze v případě, že ETag prostředku odpovídá určené hodnotě. U verzí 2011-08-18 a novějších lze ETag uvést v uvozovkách. |
If-None-Match |
Hodnota značky ETag nebo zástupný znak (*). Tuto hlavičku určete tak, aby provedla operaci pouze tehdy, pokud ETag zdroje neodpovídá zadané hodnotě. U verzí 2011-08-18 a novějších lze ETag uvést v uvozovkách. Specifikujte zástupce (*), který provede operaci pouze pokud zdroj neexistuje, a pokud existuje, operaci neuspějte. |
Specifikace podmíněných hlaviček pro čtení blob služeb ve verzi 2013-08-15 nebo později
Od verze 2013-08-15 operace Get Blob a Get Blob Properties podporují více podmíněných hlaviček. Můžete specifikovat libovolnou kombinaci podporovaných podmíněných hlaviček. Služba Blob vyhodnocuje tyto podmínky podle následujícího výrazu:
If-Match && If-Unmodified-Since && (If-None-Match || If-Modified-Since)
Můžete také zadat více hodnot oddělených čárkami pro If-Match a If-None-Match. Pokud zadáte více hodnot pro If-Match, pak služba Blob provede logickou OR operaci na všech zadaných hodnotách před vyhodnocením celého výrazu. Pokud zadáte více hodnot pro if-None-Match, služba provede logickou AND operaci před vyhodnocením celého výrazu. Zadání více hodnot pro If-Modified-Since a If-Unmodified-Since není podporováno a vede k chybovému kódu 400 (Bad Request).
Tato funkce je povolena, aby vyhověla specifikaci HTTP/1.1. Také slouží pro situace, kdy Content Delivery Network (CDN) nebo proxy server přidá další podmíněné hlavičky k požadavkům během letu. Následující příklady ilustrují několik různých kombinací podmíněných hlaviček.
Příklad 1:
Uvažujme požadavek Get Blob obsahující hlavičky If-Match a If-Modified-Since . Následující tabulka ukazuje výsledek, pokud jsou hlavičky vyhodnocovány jednotlivě, a výsledek, pokud jsou hodnoceny v kombinaci.
| Podmíněné hlavičky | Výsledek při individuálním hodnocení | Výsledek při hodnocení v kombinaci |
|---|---|---|
If-Match |
412 (Předpodmínka nesplněna) | 412 (Předpodmínka nesplněna) |
If-Modified-Since |
200 (OK) | 412 (Předpodmínka nesplněna) |
If-Match |
412 (Předpodmínka nesplněna) | 412 (Předpodmínka nesplněna) |
If-Modified-Since |
304 (Neupraveno) | 412 (Předpodmínka nesplněna) |
If-Match |
200 (OK) | 200 (OK) |
If-Modified-Since |
200 (OK) | 200 (OK) |
If-Match |
200 (OK) | 304 (Neupraveno) |
If-Modified-Since |
304 (Neupraveno) | 304 (Neupraveno) |
Příklad 2:
Uvažujme požadavek obsahující If-None-Match a If-Modified-Since hlavičky.
| Podmíněné hlavičky | Výsledek při individuálním hodnocení | Výsledek při hodnocení v kombinaci |
|---|---|---|
If-None-Match |
304 (Neupraveno) | 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 (Neupraveno) | 200 (OK) |
If-None-Match |
304 (Neupraveno) | 304 (Neupraveno) |
If-Modified-Since |
304 (Neupraveno) | 304 (Neupraveno) |
Příklad 3:
Uvažujme požadavek obsahující If-Modified-Since, If-Match, a If-Unmodified-Since hlavičky.
| Podmíněné hlavičky | Výsledek při individuálním hodnocení | Výsledek při hodnocení v kombinaci |
|---|---|---|
If-Modified-Since |
200 (OK) | 412 (Předpodmínka nesplněna) |
If-Match |
412 (Předpodmínka nesplněna) | 412 (Předpodmínka nesplněna) |
If-Unmodified-Since |
200 (OK) | 412 (Předpodmínka nesplněna) |
If-Modified-Since |
200 (OK) | 412 (Předpodmínka nesplněna) |
If-Match |
200 (OK) | 412 (Předpodmínka nesplněna) |
If-Unmodified-Since |
412 (Předpodmínka nesplněna) | 412 (Předpodmínka nesplněna) |
If-Modified-Since |
304 (Neupraveno) | 412 (Předpodmínka nesplněna) |
If-Match |
200 (OK) | 412 (Předpodmínka nesplněna) |
If-Unmodified-Since |
412 (Předpodmínka nesplněna) | 412 (Předpodmínka nesplněna) |
If-Modified-Since |
304 (Neupraveno) | 304 (Neupraveno) |
If-Match |
200 (OK) | 304 (Neupraveno) |
If-Unmodified-Since |
200 (OK) | 304 (Neupraveno) |
Příklad 4:
Uvažujme požadavek obsahující If-Modified-Since, If-None-Match, If-Unmodified-Since, a If-Match hlavičky.
| Kombinace | Individuální http stavový kód | Získejte výsledek stavu Blob |
|---|---|---|
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 (Předpodmínka nesplněna) |
If-None-Match |
304 (Neupraveno) | 412 (Předpodmínka nesplněna) |
If-Unmodified-Since |
412 (Předpodmínka nesplněna) | 412 (Předpodmínka nesplněna) |
If-Match |
200 (OK) | 412 (Předpodmínka nesplněna) |
If-Modified-Since |
200 (OK) | 200 (OK) |
If-None-Match |
304 (Neupraveno) | 200 (OK) |
If-Unmodified-Since |
200 (OK) | 200 (OK) |
If-Match |
200 (OK) | 200 (OK) |
If-Modified-Since |
304 (Neupraveno) | 412 (Předpodmínka nesplněna) |
If-None-Match |
200 (OK) | 412 (Předpodmínka nesplněna) |
If-Unmodified-Since |
200 (OK) | 412 (Předpodmínka nesplněna) |
If-Match |
412 (Předpodmínka nesplněna) | 412 (Předpodmínka nesplněna) |
If-Modified-Since |
304 (Neupraveno) | 412 (Předpodmínka nesplněna) |
If-None-Match |
200 (OK) | 412 (Předpodmínka nesplněna) |
If-Unmodified-Since |
412 (Předpodmínka nesplněna) | 412 (Předpodmínka nesplněna) |
If-Match |
412 (Předpodmínka nesplněna) | 412 (Předpodmínka nesplněna) |
If-Modified-Since |
304 (Neupraveno) | 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 (Neupraveno) | 412 (Předpodmínka nesplněna) |
If-None-Match |
304 (Neupraveno) | 412 (Předpodmínka nesplněna) |
If-Unmodified-Since |
412 (Předpodmínka nesplněna) | 412 (Předpodmínka nesplněna) |
If-Match |
200 (OK) | 412 (Předpodmínka nesplněna) |
Specifikujte podmíněné hlavičky pro čtení ve verzích před 15. 8. 2013 a pro zápisové operace (všechny verze)
Při volání operací čtení služeb Blob (Get Blob a Get Blob Properties) s verzemi staršími než 15. 8. 2013 a při volání jakékoli zápisové operace bez ohledu na verzi mějte na paměti následující faktory:
Pokud požadavek specifikuje jak
If-None-Matchhlavičky, tak ,If-Modified-Sinceje vyhodnocen na základě kritérií specifikovaných v .If-None-MatchPokud požadavek specifikuje jak
If-Matchhlavičky, tak ,If-Unmodified-Sinceje vyhodnocen na základě kritérií specifikovaných v .If-MatchKromě dvou kombinací podmíněných hlaviček může požadavek specifikovat pouze jednu podmíněnou hlavičku. Zadání více než jedné podmíněné hlavičky vede ke stavovému kódu 400 (
Bad Request).Pokud odpověď obsahuje ETag, ověřte verzi požadavku a odpovědi před zpracováním ETag. Například verze 2011-08-18 a pozdější vrací citovaný ETag, ale starší verze ne. Ujistěte se, že vaše žádost zvládne oba formáty ETag před jejich vyhodnocením.
RFC 2616 umožňuje více ETag hodnot v jedné hlavičce, ale požadavky na službu Blob mohou obsahovat pouze jednu ETag hodnotu. Zadání více než jedné hodnoty ETag vede ke stavovému kódu 400 (
Bad Request).
Operace podporující podmíněné hlavičky
Operace, které podporují podmíněné hlavičky, jsou popsány v následující tabulce.
| Operace REST | Typ operace | Podporované podmíněné hlavičky |
|---|---|---|
|
Připojit blok (verze 2015-02-21 a později) |
Napiš |
If-Modified-Since Jeli-nemodifikované-od If-Match Kdyby neměl shodu x-ms-if-tags |
|
Přidat blok z URL (verze 2018-11-09 a později) |
Napiš |
If-Modified-Since Jeli-nemodifikované-od If-Match Kdyby neměl shodu x-ms-if-tags |
| Kopírování objektu blob | Čtení a zápis | Pro podmínky na cílovém blobu: - If-Modified-Since - Jeli-nemodifikované-od - If-Match - Kdyby neměl shodu - x-ms-if-tags Pro podmínky na zdrojovém blobu: - x-ms-source-if-modified-since - x-ms-source-if-unmodified-since - x-ms-source-if-match - x-ms-source-if-none-match - x-ms-source-if-tags |
| Odstranit blob | Napiš |
If-Modified-Since Jeli-nemodifikované-od If-Match Kdyby neměl shodu x-ms-if-tags |
| Odstranění kontejneru | Napiš |
If-Modified-Since Jeli-nemodifikované-od |
| Získejte Bloba | Čti |
If-Modified-Since Jeli-nemodifikované-od If-Match Kdyby neměl shodu x-ms-if-tags |
| Získání metadat blobů | Čti |
If-Modified-Since Jeli-nemodifikované-od If-Match Kdyby neměl shodu x-ms-if-tags |
| Získání vlastností objektu blob | Čti |
If-Modified-Since Jeli-nemodifikované-od If-Match Kdyby neměl shodu x-ms-if-tags |
|
Získání značek objektů blob |
Čti |
x-ms-if-tagy (verze 2019-12-12 a později) Pro podmínky na blob (verze 2025-11-05 a později): - x-ms-blob-if-modified-since - x-ms-blob-if-unmodified-since - x-ms-blob-if-match - x-ms-blob-if-none-match |
| Získejte blokovaný seznam | Čti | x-ms-if-tags |
| Získejte rozsahy stran | Čti |
If-Modified-Since Jeli-nemodifikované-od If-Match Kdyby neměl shodu x-ms-if-tags |
| Pronájem Blob | Napiš |
If-Modified-Since Jeli-nemodifikované-od If-Match Kdyby neměl shodu x-ms-if-tags |
| Zapůjčení kontejneru | Napiš |
If-Modified-Since Jeli-nemodifikované-od |
| Zadejte blob z URL | Napiš |
If-Modified-Since Jeli-nemodifikované-od If-Match Kdyby neměl shodu Pro podmínky na zdrojovém blobu: - x-ms-source-If-Modified-Since - x-ms-source-if-Unmodified-Since - x-ms-source-If-Match - x-ms-source-If-None-Match |
| Vložení objektu blob | Napiš |
If-Modified-Since Jeli-nemodifikované-od If-Match Kdyby neměl shodu x-ms-if-tags |
|
Uložit blok z URL (verze 2018-03-28 a později) |
Napiš |
x-ms-source-If-Modified-Since x-ms-source-If-Unmodified-Since x-ms-source-If-Match x-ms-source-If-None-Match |
| Seznam bloků cesty | Napiš |
If-Modified-Since Jeli-nemodifikované-od If-Match Kdyby neměl shodu x-ms-if-tags |
| Vložit stránku | Napiš |
If-Modified-Since Jeli-nemodifikované-od If-Match Kdyby neměl shodu x-ms-if-tags |
|
Položte stránku z URL (verze 2018-11-09 a později) |
Napiš |
If-Modified-Since Jeli-nemodifikované-od If-Match Kdyby neměl shodu x-ms-if-tags |
| Nastavení metadat objektů blob | Napiš |
If-Modified-Since Jeli-nemodifikované-od If-Match Kdyby neměl shodu x-ms-if-tags |
| Nastavení vlastností objektu blob | Napiš |
If-Modified-Since Jeli-nemodifikované-od If-Match Kdyby neměl shodu x-ms-if-tags |
| Nastavit přístupová práva kontejneru ACL | Napiš |
If-Modified-Since Jeli-nemodifikované-od |
| Set Container Metadata | Napiš | If-Modified-Since |
|
Nastavení značek Blob |
Napiš |
x-ms-if-tagy (verze 2019-12-12 a později) Pro podmínky na blob (verze 2025-11-05 a později): - x-ms-blob-if-modified-since - x-ms-blob-if-unmodified-since - x-ms-blob-if-match - x-ms-blob-if-none-match |
| Nastavit úroveň blobu | Napiš | x-ms-if-tags |
| Snapshot Blob | Čti |
If-Modified-Since Jeli-nemodifikované-od If-Match Kdyby neměl shodu x-ms-if-tags |
| Nastavte politiku neměnnosti blobů | Napiš | Jeli-nemodifikované-od |
Následující operace s datovými složkami Blob v současnosti nepodporují podmíněné hlavičky:
HTTP odpovědi pro operace podporující podmíněné hlavičky
Pokud požadavek obsahuje podmíněnou hlavičku a požadovaný zdroj nesplňuje danou podmínku, služba Blob vrátí HTTP kód odpovědi. Vrácené kódy odpovědí jsou v souladu se specifikací protokolu HTTP/1.1 (RFC 2616).
Metody v klientské knihovně Azure .NET převádějí tyto kódy odezvy na StorageException objekt.
Čtení operací
Následující tabulka ukazuje kódy odpovědí vrácené pro nesplněnou podmínku pro každou podmíněnou hlavičku při čtení operace. Čtení operací používá slovesa GET nebo HEAD.
| Podmíněná hlavička | Kód odpovědi, pokud podmínka není splněna |
|---|---|
If-Modified-Since |
Neupraveno (304 (nemodifikováno)) |
If-Unmodified-Since |
Předpodmínka nesplněna (412 (Předpodmínka nesplněna)) |
If-Match |
Předpodmínka nesplněna (412 (Předpodmínka nesplněna)) |
If-None-Match |
Neupraveno (304 (nemodifikováno)) |
Odkazujte na předchozí příklady pro výsledky při použití více hlaviček s verzemi 2013-08-15 nebo novější.
Zápisové operace
Následující tabulka ukazuje kódy odpovědí vrácené pro nesplněnou podmínku pro každou podmíněnou hlavičku, pokud je operace zápisem. Operace zápisu používají slovesa PUT nebo DELETE.
| Podmíněná hlavička | Kód odpovědi, pokud podmínka není splněna |
|---|---|
If-Modified-Since |
Předpodmínka nesplněna (412 (Předpodmínka nesplněna)) |
If-Unmodified-Since |
Předpodmínka nesplněna (412 (Předpodmínka nesplněna)) |
If-Match |
Předpodmínka nesplněna (412 (Předpodmínka nesplněna)) |
If-None-Match |
Předpodmínka nesplněna (412 (Předpodmínka nesplněna)) |
Kopírování operací
Následující tabulka ukazuje kódy odpovědí vrácené pro nesplněnou podmínku pro každou podmíněnou hlavičku, pokud je operace kopírováním. Operace Copy Blob používá slovesa PUT.
| Podmíněná hlavička | Kód odpovědi, pokud podmínka není splněna |
|---|---|
If-Modified-Since |
Předpodmínka nesplněna (412 (Předpodmínka nesplněna)) |
If-Unmodified-Since |
Předpodmínka nesplněna (412 (Předpodmínka nesplněna)) |
If-Match |
Předpodmínka nesplněna (412 (Předpodmínka nesplněna)) |
If-None-Match |
Předpodmínka nesplněna (412 (Předpodmínka nesplněna)) |
x-ms-source-if-modified-since |
Předpodmínka nesplněna (412 (Předpodmínka nesplněna)) |
x-ms-source-if-unmodified-since |
Předpodmínka nesplněna (412 (Předpodmínka nesplněna)) |
x-ms-source-if-match |
Předpodmínka nesplněna (412 (Předpodmínka nesplněna)) |
x-ms-source-if-none-match |
Předpodmínka nesplněna (412 (Předpodmínka nesplněna)) |
Podmíněné operace tagů
Kromě standardních HTTP podmíněných hlaviček podporovaných službou Blob podporuje několik operací také podmínky proti tagům na zdroji blobu.
| Podmíněná hlavička | Description |
|---|---|
x-ms-if-tags |
Verze 2019-12-12 a novší. Hodnota TagsPredicate . Specifikujte tuto hlavičku tak, aby provedla operaci pouze tehdy, pokud predikát vyhodnotí do true vůči značkám blobu. |
x-ms-source-if-tags |
Verze 2019-12-12 a novší. Platí to pouze pro Copy Blob. Hodnota TagsPredicate . Specifikujte tuto hlavičku tak, aby provedla operaci pouze tehdy, pokud predikát vyhodnotí do true vůči značkám zdrojového blobu. |
Pokud je v požadavku přítomen x-ms-if-tagsx-ms-source-if-tags or podmíněný hlavička a vyhodnocuje se TagsPredicate na false, služba Blob vrací chybový kód 412 (Precondition Failed) pro tuto operaci.
Volající musí mít povolení číst tagy na blobu, aby mohl použít x-ms-if-tags podmíněné hlavičky OR x-ms-source-if-tags .
Tagy Predikátová syntax
Služba Blob podporuje podmnožinu gramatiky klauzule ANSI SQL WHERE pro hodnotu hlavičky TagsPredicate . Podporují se následující operátory:
| Operator | Description | Example |
|---|---|---|
= |
Rovný | Status = 'In Progress' |
<> |
Nerovná se | Status <> 'Done' |
> |
Je větší než | LastModified > '2018-06-18 20:51:26Z' |
>= |
Větší nebo rovno | Priority >= '05' |
< |
Menší než | Age < '032' |
<= |
Menší než nebo rovno | Reviewer <= 'Smith' |
AND |
Logické a | Name > 'C' AND Name < 'D'Age > '032' AND Age < '100' |
OR |
Logické nebo | Status = 'Done' or LastModified > '2018-06-18 20:51:26Z' |
Všechny hodnoty tagů jsou řetězce a podporované binární relační operátory používají lexikografické třídění hodnot tagů. Pro podporu neřetězcových datových typů, včetně čísel a dat, je nutné použít vhodné vyplňování a tříditelné formátování. Hodnoty tagů musí být uvedeny v jednotlivých uvozovkách.
Pokud jsou tagové názvy běžné SQL identifikátory, mohou být přítomny bez úniku. Pokud obsahují speciální znaky, musí být vymezeny dvojitými uvozovkami, například "TagName" = 'TagValue'.
Výrazy mohou zahrnovat porovnání pro více názvů a hodnot tagů. Závorky (( a )) mohou být použity k seskupení logických výrazů a řízení kanonického pořadí operací. A TagsPredicate může obsahovat maximálně 10 logických operací.
Služba úložiště odmítá jakýkoli požadavek obsahující neplatný výraz s chybovým kódem 400 (Špatný požadavek).