Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Számos Blob szolgáltatási művelet támogatja a feltételes fejlécek használatát. Csak akkor lehet feltételes fejléceket megadni, hogy végrehajtsanak egy műveletet, ha egy meghatározott feltétel teljesül.
A Blob szolgáltatás a HTTP/1.1 protokoll specifikációját követi a feltételes fejlécekre.
Támogatott feltételes fejlécek
A támogatott feltételes fejléceket az alábbi táblázat írja le.
| Feltételes fejléc | Description |
|---|---|
If-Modified-Since |
Egy DateTime érték. A dátumformátum az RFC 1123-at követi. További információért lásd: Dátum-idő értékek ábrázolása a fejlécekben. Megadjuk ezt a fejlécet, hogy csak akkor hajtsa végre a műveletet, ha az erőforrást a megadott idő óta módosították. |
If-Unmodified-Since |
Egy DateTime érték. A dátumformátum az RFC 1123-at követi. További információért lásd: Dátum-idő értékek ábrázolása a fejlécekben. Megadjuk ezt a fejlécet, hogy csak akkor hajtsa végre a műveletet, ha az erőforrást a megadott dátum/idő előtt nem módosították. |
If-Match |
ETag-érték. Adja meg ezt a fejlécet a művelet végrehajtásához, ha az erőforrás ETagje megegyezik a megadott értékkel. A 2011-08-18-as és újabb verzióknál az ETag idézőjelben megjelölhető. |
If-None-Match |
ETag-érték vagy helyettesítő karakter (*). Megadjuk ezt a fejlécet, hogy csak akkor hajtson végre a műveletet, ha az erőforrás ETag-ja nem egyezik meg a megadott értékkel. A 2011-08-18-as és újabb verzióknál az ETag idézőjelben megjelölhető. Megadjuk a vadkártya karaktert (*), hogy csak akkor hajtsa végre a műveletet, ha az erőforrás nem létezik, és ha létezik, akkor a művelet sikertelensége. |
Feltételes fejlécek meghatározása a Blob Service Read műveletekhez a 2013-08-15 vagy későbbi verzióban
A 2013-08-15-ös verziótól kezdve a Get Blob és Get Blob Properties műveletek több feltételes fejlécet támogatnak. Bármilyen támogatott feltételes fejlécek kombinációját megadhatod. A Blob szolgáltatás ezeket a feltételeket a következő kifejezés szerint értékeli:
If-Match && If-Unmodified-Since && (If-None-Match || If-Modified-Since)
Több vesszővel elválasztott értéket is megadhatsz és If-MatchIf-None-Match. Ha több értéket is megadsz , If-Matchakkor a Blob szolgáltatás logikus műveletet végez OR az összes megadott értéken, mielőtt az egész kifejezést értékelné. Ha több értéket is megadsz , if-None-Matchakkor a szolgáltatás logikus AND műveletet hajt végre, mielőtt az egész kifejezést értékeli. Több érték megadása és If-Modified-SinceIf-Unmodified-Since nem támogatott, így 400 (Bad Request).
Ez a funkció azért van engedélyezve, hogy megfeleljen az HTTP/1.1 specifikációnak. Emellett olyan helyzeteket is kialakít, amikor egy Tartalomszolgáltató Hálózat (CDN) vagy proxyszerver további feltételes fejléceket ad hozzá egy repülési kéréshez. Az alábbi példák több különböző feltételes fejléckombinációt mutatnak be.
1. példa:
Vegyünk egy Get Blob kérést, amely tartalmazza az If-Match és If-Modified-Since fejléceket. Az alábbi táblázat mutatja az eredményt, ha a fejléceket egyenként értékeljük, és az eredményt, ha őket együttesen értékelik.
| Feltételes fejlécek | Az eredmény, ha egyénileg értékeljük | Az eredmény, ha kombinálva értékeljük |
|---|---|---|
If-Match |
412 (Előfeltétel meghiúsult) | 412 (Előfeltétel meghiúsult) |
If-Modified-Since |
200 (OK) | 412 (Előfeltétel meghiúsult) |
If-Match |
412 (Előfeltétel meghiúsult) | 412 (Előfeltétel meghiúsult) |
If-Modified-Since |
304 (Módosítatlan) | 412 (Előfeltétel meghiúsult) |
If-Match |
200 (OK) | 200 (OK) |
If-Modified-Since |
200 (OK) | 200 (OK) |
If-Match |
200 (OK) | 304 (Módosítatlan) |
If-Modified-Since |
304 (Módosítatlan) | 304 (Módosítatlan) |
2. példa:
Vegyünk egy kérést, amely If-None-Match tartalmazza a fejléceket If-Modified-Since .
| Feltételes fejlécek | Az eredmény, ha egyénileg értékeljük | Az eredmény, ha kombinálva értékeljük |
|---|---|---|
If-None-Match |
304 (Módosítatlan) | 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 (Módosítatlan) | 200 (OK) |
If-None-Match |
304 (Módosítatlan) | 304 (Módosítatlan) |
If-Modified-Since |
304 (Módosítatlan) | 304 (Módosítatlan) |
3. példa:
Vegyünk egy kérést, amely If-Modified-Since, If-Match, és If-Unmodified-Since fejléceket tartalmaz.
| Feltételes fejlécek | Az eredmény, ha egyénileg értékeljük | Az eredmény, ha kombinálva értékeljük |
|---|---|---|
If-Modified-Since |
200 (OK) | 412 (Előfeltétel meghiúsult) |
If-Match |
412 (Előfeltétel meghiúsult) | 412 (Előfeltétel meghiúsult) |
If-Unmodified-Since |
200 (OK) | 412 (Előfeltétel meghiúsult) |
If-Modified-Since |
200 (OK) | 412 (Előfeltétel meghiúsult) |
If-Match |
200 (OK) | 412 (Előfeltétel meghiúsult) |
If-Unmodified-Since |
412 (Előfeltétel meghiúsult) | 412 (Előfeltétel meghiúsult) |
If-Modified-Since |
304 (Módosítatlan) | 412 (Előfeltétel meghiúsult) |
If-Match |
200 (OK) | 412 (Előfeltétel meghiúsult) |
If-Unmodified-Since |
412 (Előfeltétel meghiúsult) | 412 (Előfeltétel meghiúsult) |
If-Modified-Since |
304 (Módosítatlan) | 304 (Módosítatlan) |
If-Match |
200 (OK) | 304 (Módosítatlan) |
If-Unmodified-Since |
200 (OK) | 304 (Módosítatlan) |
4. példa:
Vegyünk egy kérést, amely , If-Modified-Since, , és If-None-Match fejléceket tartalmazIf-Unmodified-SinceIf-Match.
| Kombináció | Egyéni http status code | Szerezd meg a Blob status eredményt |
|---|---|---|
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 (Előfeltétel meghiúsult) |
If-None-Match |
304 (Módosítatlan) | 412 (Előfeltétel meghiúsult) |
If-Unmodified-Since |
412 (Előfeltétel meghiúsult) | 412 (Előfeltétel meghiúsult) |
If-Match |
200 (OK) | 412 (Előfeltétel meghiúsult) |
If-Modified-Since |
200 (OK) | 200 (OK) |
If-None-Match |
304 (Módosítatlan) | 200 (OK) |
If-Unmodified-Since |
200 (OK) | 200 (OK) |
If-Match |
200 (OK) | 200 (OK) |
If-Modified-Since |
304 (Módosítatlan) | 412 (Előfeltétel meghiúsult) |
If-None-Match |
200 (OK) | 412 (Előfeltétel meghiúsult) |
If-Unmodified-Since |
200 (OK) | 412 (Előfeltétel meghiúsult) |
If-Match |
412 (Előfeltétel meghiúsult) | 412 (Előfeltétel meghiúsult) |
If-Modified-Since |
304 (Módosítatlan) | 412 (Előfeltétel meghiúsult) |
If-None-Match |
200 (OK) | 412 (Előfeltétel meghiúsult) |
If-Unmodified-Since |
412 (Előfeltétel meghiúsult) | 412 (Előfeltétel meghiúsult) |
If-Match |
412 (Előfeltétel meghiúsult) | 412 (Előfeltétel meghiúsult) |
If-Modified-Since |
304 (Módosítatlan) | 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 (Módosítatlan) | 412 (Előfeltétel meghiúsult) |
If-None-Match |
304 (Módosítatlan) | 412 (Előfeltétel meghiúsult) |
If-Unmodified-Since |
412 (Előfeltétel meghiúsult) | 412 (Előfeltétel meghiúsult) |
If-Match |
200 (OK) | 412 (Előfeltétel meghiúsult) |
Határozd meg feltételes fejléceket olvasási műveletekhez a 2013-08-15 előtti verziókban, valamint írási műveletekhez (minden verzióban)
Amikor a Blob szolgáltatásolvasási műveleteket (Get Blob és Get Blob Properties) hívjuk 2013-08-15 előtti verziókkal, és bármilyen írási műveletet hívunk verziótól függetlenül, tartsd szem előtt a következő szempontokat:
Ha egy kérés mind
If-None-Matcha fejléceketIf-Modified-Since, akkor a kérést a benneIf-None-Matchmeghatározott kritériumok alapján értékelik.Ha egy kérés mind
If-Matcha fejléceketIf-Unmodified-Since, akkor a kérést a benneIf-Matchmeghatározott kritériumok alapján értékelik.A korábban felsorolt két feltételes fejléc-kombináció kivételével egy kérés csak egyetlen feltételes fejlécet is megadhat. Ha több feltételes fejléc megadják, az 400 (
Bad Request) állapotkódot eredményezi.Ha egy válasz tartalmaz ETag-ot, ellenőrizd a kérés és válasz verzióját az ETag feldolgozása előtt. Például a 2011-08-18-as verzió és későbbi verziók idézett ETag-ot adnak vissza, de a régebbi verziók nem. Győződj meg róla, hogy a jelentkezésed mindkét ETag formátumot képes feldolgozni, mielőtt azok megítélnék.
Az RFC 2616 lehetővé teszi több ETag értéket egyetlen fejlécben, de a Blob szolgáltatáshoz irányuló kérések csak egy ETag értéket tartalmazhatnak. Ha több ETag értéket megadsz, az 400 (
Bad Request) állapotkódot eredményezi.
A feltételes fejléceket támogató műveletek
A feltételes fejléceket támogató műveleteket az alábbi táblázat írja le.
| REST művelet | Művelettípus | Támogatott feltételes fejlécek |
|---|---|---|
|
Hozzáfűzési blokk (verzió: 2015-02-21 és újabb) |
Írj! |
Ha-módosítva-azóta Ha-módosítatlan-azóta Ha-Match Ha semmi egyezés x-ms-if-tags |
|
Blokkolás URL-ből történő csatolás (verzió: 2018-11-09 és újabb) |
Írj! |
Ha-módosítva-azóta Ha-módosítatlan-azóta Ha-Match Ha semmi egyezés x-ms-if-tags |
| Blob másolása | Olvasás és írás | A célfolb feltételeihez: - Ha-módosítva-azóta - Ha-módosítatlan-azóta - Ha-Match - Ha semmi egyezés - x-ms-if-tags A forrás folbon lévő feltételekhez: - 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 |
| Blob törlése | Írj! |
Ha-módosítva-azóta Ha-módosítatlan-azóta Ha-Match Ha semmi egyezés x-ms-if-tags x-ms-access-tier-if-modified-since x-ms-access-tier-if-unmodified-since |
| Tároló törlése | Írj! |
Ha-módosítva-azóta Ha-módosítatlan-azóta |
| Szerezd meg a Blobot | Olvasás |
Ha-módosítva-azóta Ha-módosítatlan-azóta Ha-Match Ha semmi egyezés x-ms-if-tags |
| Blob-metaadatok lekérése | Olvasás |
Ha-módosítva-azóta Ha-módosítatlan-azóta Ha-Match Ha semmi egyezés x-ms-if-tags |
| Blob-tulajdonságok lekérése | Olvasás |
Ha-módosítva-azóta Ha-módosítatlan-azóta Ha-Match Ha semmi egyezés x-ms-if-tags |
|
Blob címkék lekérése |
Olvasás |
x-ms-if-tags (2019-12-12-től kezdő verzió) A folb állapotai miatt (2025-11-05 verzió és újabb): - x-ms-blob-if-modified-since - x-ms-blob-if-unmodified-since - x-ms-blob-if-match - x-ms-blob-if-none-match |
| Szerezd meg a blokkolista | Olvasás | x-ms-if-tags |
| Oldaltartományok beszerzése | Olvasás |
Ha-módosítva-azóta Ha-módosítatlan-azóta Ha-Match Ha semmi egyezés x-ms-if-tags |
| Blob bérlet | Írj! |
Ha-módosítva-azóta Ha-módosítatlan-azóta Ha-Match Ha semmi egyezés x-ms-if-tags |
| Tároló bérlete | Írj! |
Ha-módosítva-azóta Ha-módosítatlan-azóta |
| Put Blob From URL | Írj! |
Ha-módosítva-azóta Ha-módosítatlan-azóta Ha-Match Ha semmi egyezés A forrás folbon lévő feltételekhez: - x-ms-forrás-Hag-módosított-Mivel - x-ms-source-if-unmodified-Since - x-ms-source-If-Match - x-ms-source-Hag-nincs-egyezés |
| Blob elhelyezése | Írj! |
Ha-módosítva-azóta Ha-módosítatlan-azóta Ha-Match Ha semmi egyezés x-ms-if-tags |
|
Blokkolás URL-ből (verzió: 2018-03-28 és újabb) |
Írj! |
x-ms-forrás-Hag-módosított-Mivel x-ms-forrás-Ha-módosítatlan-Mivel x-ms-source-If-Match x-ms-source-Hag-nincs-egyezés |
| Tiltási lista | Írj! |
Ha-módosítva-azóta Ha-módosítatlan-azóta Ha-Match Ha semmi egyezés x-ms-if-tags |
| Lap elhelyezése | Írj! |
Ha-módosítva-azóta Ha-módosítatlan-azóta Ha-Match Ha semmi egyezés x-ms-if-tags |
|
Oldal megjelenítése URL-ről (verzió: 2018-11-09 és újabb) |
Írj! |
Ha-módosítva-azóta Ha-módosítatlan-azóta Ha-Match Ha semmi egyezés x-ms-if-tags |
| Blob metaadatainak beállítása | Írj! |
Ha-módosítva-azóta Ha-módosítatlan-azóta Ha-Match Ha semmi egyezés x-ms-if-tags |
| Blobtulajdonságok beállítása | Írj! |
Ha-módosítva-azóta Ha-módosítatlan-azóta Ha-Match Ha semmi egyezés x-ms-if-tags |
| Tároló ACL-ének beállítása | Írj! |
Ha-módosítva-azóta Ha-módosítatlan-azóta |
| Set Container Metadata | Írj! | Ha-módosítva-azóta |
|
Blobcímkék beállítása |
Írj! |
x-ms-if-tags (2019-12-12-től kezdő verzió) A folb állapotai miatt (2025-11-05 verzió és újabb): - x-ms-blob-if-modified-since - x-ms-blob-if-unmodified-since - x-ms-blob-if-match - x-ms-blob-if-none-match |
| Blob réteg beállítása | Írj! | x-ms-if-tags |
| Snapshot Blob | Olvasás |
Ha-módosítva-azóta Ha-módosítatlan-azóta Ha-Match Ha semmi egyezés x-ms-if-tags |
| Állítsd be a Blob Immutability Policy | Írj! | Ha-módosítatlan-azóta |
Az alábbi Blob szolgáltatásadat-műveletek jelenleg nem támogatják a feltételes fejléceket:
HTTP válaszkódok feltételes fejléceket támogató műveletekhez
Ha a kérés feltételes fejlécet tartalmaz, és a kért erőforrás nem felel meg a megadott feltételnek, a Blob szolgáltatás HTTP válaszkódot ad vissza. A visszaküldött válaszkódok összhangban vannak az HTTP/1.1 protokoll specifikációjával (RFC 2616).
Az Azure .NET klienskönyvtár metódusai ezeket a hibaválaszkódokat StorageException objektummá alakítják.
Műveletek olvasása
Az alábbi táblázat megmutatja, hogy a válaszkódok visszatérnek egy teljesítetlen feltételre minden feltételes fejléchez, amikor a művelet olvasási művelet. Az olvasási műveleteket a GET vagy HEAD igéket használják.
| Feltételes fejléc | Válaszkód, ha a feltétel nem teljesül. |
|---|---|
If-Modified-Since |
Nem módosított (304 (Nem módosítva)) |
If-Unmodified-Since |
Előfeltétel sikertelenül (412 (előfeltétel meghiúsult)) |
If-Match |
Előfeltétel sikertelenül (412 (előfeltétel meghiúsult)) |
If-None-Match |
Nem módosított (304 (Nem módosítva)) |
Az előző példákban találjuk az eredményeket, ha több fejlécet használsz 2013-08-15 vagy újabb verzióval.
Írási műveletek
Az alábbi táblázat megmutatja, hogy a válaszkódok visszatérnek egy teljesítetlen feltételre minden feltételes fejléchez, ha a művelet írási művelet. Az írási műveletekhez a PUT vagy DELETE igéket használják.
| Feltételes fejléc | Válaszkód, ha a feltétel nem teljesül. |
|---|---|
If-Modified-Since |
Előfeltétel sikertelenül (412 (előfeltétel meghiúsult)) |
If-Unmodified-Since |
Előfeltétel sikertelenül (412 (előfeltétel meghiúsult)) |
If-Match |
Előfeltétel sikertelenül (412 (előfeltétel meghiúsult)) |
If-None-Match |
Előfeltétel sikertelenül (412 (előfeltétel meghiúsult)) |
Másolási műveletek
Az alábbi táblázat megmutatja, hogy a válaszkódok visszatérnek egy teljesítetlen feltételre minden feltételes fejlécre, ha a művelet másolási művelet. A Copy Blob művelet a PUT igéket használja.
| Feltételes fejléc | Válaszkód, ha a feltétel nem teljesül. |
|---|---|
If-Modified-Since |
Előfeltétel sikertelenül (412 (előfeltétel meghiúsult)) |
If-Unmodified-Since |
Előfeltétel sikertelenül (412 (előfeltétel meghiúsult)) |
If-Match |
Előfeltétel sikertelenül (412 (előfeltétel meghiúsult)) |
If-None-Match |
Előfeltétel sikertelenül (412 (előfeltétel meghiúsult)) |
x-ms-source-if-modified-since |
Előfeltétel sikertelenül (412 (előfeltétel meghiúsult)) |
x-ms-source-if-unmodified-since |
Előfeltétel sikertelenül (412 (előfeltétel meghiúsult)) |
x-ms-source-if-match |
Előfeltétel sikertelenül (412 (előfeltétel meghiúsult)) |
x-ms-source-if-none-match |
Előfeltétel sikertelenül (412 (előfeltétel meghiúsult)) |
Címkék Feltételes műveletek
A Blob szolgáltatás által támogatott szabványos HTTP feltételes fejléceken túl több művelet is támogatja a Blob erőforrás címkéivel szembeni feltételeket.
| Feltételes fejléc | Description |
|---|---|
x-ms-if-tags |
2019-12-12 verzió és újabb. Egy TagsPredicate érték. Határozd meg ezt a fejlécet, hogy csak akkor hajtsa végre a műveletet, ha a predikátum a folb címkéihez viszonyítja - true et. |
x-ms-source-if-tags |
2019-12-12 verzió és újabb. Csak a Copy Blobra vonatkozik. Egy TagsPredicate érték. Határozd meg ezt a fejlécet, hogy csak akkor hajtsa végre a műveletet, ha a predikátum a forrás folb címkéihez viszonyítja - true et. |
Ha az x-ms-if-tags vagy x-ms-source-if-tags feltételes fejléc jelen van egy kérésben, és a TagsPredicatefalseBlob szolgáltatás a művelethez tartozó 412-es hibakódot (előfeltétel sikertelenített) adja vissza.
A hívónak engedélyt kell kapnia a folban lévő címkék elolvasásához az or x-ms-if-tags feltételes fejlécek használatáhozx-ms-source-if-tags.
Tags Predikátum szintaxis
A Blob szolgáltatás támogatja az ANSI SQL WHERE egy részhalmazát a fejléc értékére TagsPredicate szolgáló klausza nyelvtani nyelvtanához. A következő operátorok támogatottak:
| Operator | Description | Example |
|---|---|---|
= |
Egyenlő | Status = 'In Progress' |
<> |
Nem egyenlő | Status <> 'Done' |
> |
Nagyobb, mint | LastModified > '2018-06-18 20:51:26Z' |
>= |
Nagyobb vagy egyenlő | Priority >= '05' |
< |
Kevesebb, mint | Age < '032' |
<= |
Kisebb vagy egyenlő | Reviewer <= 'Smith' |
AND |
Logikus és | Name > 'C' AND Name < 'D'Age > '032' AND Age < '100' |
OR |
Logikai vagy | Status = 'Done' or LastModified > '2018-06-18 20:51:26Z' |
Minden címkeérték string, és a támogatott bináris relációs operátorok lexikografikus rendezést alkalmaznak a címkék értékeiről. A nem stringes adattípusok, köztük számok és dátumok támogatásához megfelelő kiegészítést és rendezhető formázást kell alkalmazni. A címkék értékeit egyetlen idézőjelben kell tartalmazni.
Ha a címkék nevei normál SQL azonosítók, akkor előfordulhat, hogy megjelennek anélkül, hogy kiszabadulnának. Ha speciális karaktereket tartalmaznak, dupla idézőjelekkel kell őket jelölni, például "TagName" = 'TagValue'.
Az kifejezések több címkenév és érték összehasonlítását is tartalmazhatnak. A zárójel (( és )) használható logikai kifejezések csoportosítására és a kanonikus működési sorrend szabályozására. Az A TagsPredicate legfeljebb 10 logikai műveletet tartalmazhat.
A tároló szolgáltatás elutasít minden olyan kérést, amely érvénytelen kifejezést tartalmaz 400-as hibakóddal (Rossz kérés).