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.
A Put Page From URL művelet egy oldaltartományt ír egy lapblobba, ahol a rendszer beolvassa a tartalmat egy URL-címről. Ez az API a 2018-11-09-es verziótól érhető el.
Kérelem
A Put Page From URL kérést az alábbiak szerint hozhatja létre. Javasoljuk, hogy HTTPS-t használjon. Cserélje le myaccount a tárfiók nevére:
| PUT metóduskérés URI-ja | HTTP-verzió |
|---|---|
https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=page |
HTTP/1.1 |
Emulált tárolási szolgáltatás URI azonosítója
Amikor kérést küld az emulált tárolási szolgáltatásnak, adja meg az emulátor állomásnevét és a Blob Service portját a következőként, mint , 127.0.0.1:10000majd az emulált tárfiók nevét:
| PUT metóduskérés URI-ja | HTTP-verzió |
|---|---|
http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob?comp=page |
HTTP/1.1 |
További információ: Az Azurite emulátor használata helyi Azure Storage-fejlesztéshez.
URI-paraméterek
A kérelem URI-ján a következő további paramétereket adhatja meg:
| Paraméter | Leírás |
|---|---|
timeout |
Opcionális. A timeout paraméter másodpercben van kifejezve. További információ: Időtúllépések beállítása blobszolgáltatás-műveletekhez. |
HTTP-kérés fejlécek
A szükséges és nem kötelező kérelemfejléceket az alábbi táblázat ismerteti:
| Kérések fejrész | Leírás |
|---|---|
Authorization |
Szükséges. Megadja az engedélyezési sémát, a fióknevet és az aláírást. További információ: Kérelmek engedélyezése az Azure Storage-. |
Date vagy x-ms-date |
Szükséges. A kérelem koordinált egyetemes idejét (UTC) adja meg. További információ: Kérelmek engedélyezése az Azure Storage-. |
x-ms-version |
Minden engedélyezett kéréshez szükséges. A kérelemhez használni kívánt művelet verzióját adja meg. További információ: Az Azure Storage-szolgáltatások verziószámozása. |
Range |
Range Vagy x-ms-range kötelező.Megadja az oldalként írandó bájttartományt. A tartomány kezdetét és végét is meg kell adni. Ezt a fejlécet a HTTP/1.1 protokoll specifikációjahatározza meg. Oldalfrissítési művelet esetén az oldaltartomány mérete legfeljebb 4 MiB lehet. Mivel az oldalakat 512 bájtos határokhoz kell igazítani, a kezdőeltolásnak 512-es modulusnak, a végeltolásnak pedig 512 – 1 modulusnak kell lennie. Érvényes bájttartományok például a 0-511, 512-1023 stb. A Blob Service csak egyetlen bájttartományt fogad el a Range fejléchez, és a bájttartományt a következő formátumban kell megadni: bytes=startByte-endByte.Ha Range és x-ms-range is meg van adva, a szolgáltatás a x-ms-rangeértékét használja. További információ: A tartományfejléc megadása a Blob Service műveletekhez. |
x-ms-range |
Range Vagy x-ms-range kötelező.Megadja az oldalként írandó bájttartományt. A tartomány kezdetét és végét is meg kell adni. Ezt a fejlécet a HTTP/1.1 protokoll specifikációjahatározza meg. Az oldaltartomány legfeljebb 4 MiB méretű lehet. Mivel az oldalakat 512 bájtos határokhoz kell igazítani, a kezdőeltolásnak 512-es modulusnak, a végeltolásnak pedig 512 – 1 modulusnak kell lennie. Érvényes bájttartományok például a 0-511, 512-1023 stb. A Blob Service csak egyetlen bájttartományt fogad el a x-ms-range fejléchez, és a bájttartományt a következő formátumban kell megadni: bytes=startByte-endByte.Ha Range és x-ms-range is meg van adva, a szolgáltatás a x-ms-rangeértékét használja. További információ: A tartományfejléc megadása a Blob Service műveletekhez. |
Content-Length |
Szükséges. A kérelem törzsében továbbított bájtok számát adja meg. A fejléc értékét nullára kell állítani. Ha a hossz nem nulla, a művelet a 400-as (hibás kérés) állapotkóddal meghiúsul. |
x-ms-copy-source:name |
Szükséges. A forrásblob URL-címét adja meg. Az érték legfeljebb 2 KiB hosszúságú URL-cím lehet, amely blobot határoz meg. Az értéknek URL-kódolásúnak kell lennie, ahogyan az egy kérelem URI-jában jelenik meg. A forrásblobnak nyilvánosnak kell lennie, vagy közös hozzáférésű jogosultságkóddal kell engedélyezni. Ha a forrásblob nyilvános, a művelet végrehajtásához nincs szükség engedélyezésre. Íme néhány példa a forrásobjektum URL-címére: - https://myaccount.blob.core.windows.net/mycontainer/myblob- https://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot=<DateTime>- https://myaccount.blob.core.windows.net/mycontainer/myblob?versionid=<DateTime> |
x-ms-copy-source-authorization: <scheme> <signature> |
Opcionális. Megadja a másolási forrás engedélyezési sémáját és aláírását. További információ: Kérelmek engedélyezése az Azure Storage-. A Microsoft Entra csak sématulajdonost támogat. Ez a fejléc a 2020-10-02-es és újabb verziókban támogatott. |
x-ms-source-range |
Feltölti a blob bájtjait a forrás URL-címében a megadott tartományban. A tartomány kezdetét és végét is meg kell adni. Ezt a fejlécet a HTTP/1.1 protokoll specifikációjahatározza meg. Az oldaltartomány legfeljebb 4 MiB méretű lehet. A Blob Service csak egyetlen bájttartományt fogad el a x-ms-source-range fejléchez, és a bájttartományt a következő formátumban kell megadni: bytes=startByte-endByte.További információ: A tartományfejléc megadása a Blob Service műveletekhez . |
x-ms-source-content-md5 |
Opcionális. Az oldal tartalmának MD5-kivonata az URI-ból. Ez a kivonat az oldal integritásának ellenőrzésére szolgál az adatok URI-ból történő átvitele során. Ha ez a fejléc meg van adva, a tárolási szolgáltatás összehasonlítja a másolási forrásból érkező tartalom kivonatát ezzel a fejlécértékkel. Megjegyzés: Ez az MD5-kivonat nem tárolódik a blobban. Ha a két kivonat nem egyezik, a művelet 400-es hibakóddal (hibás kérelem) meghiúsul. |
x-ms-source-content-crc64 |
Opcionális. Az oldal tartalmának CRC64-kivonata az URI-ból. Ez a kivonat az oldal integritásának ellenőrzésére szolgál az adatok URI-ból történő átvitele során. Ha ez a fejléc meg van adva, a tárolási szolgáltatás összehasonlítja a másolási forrásból érkező tartalom kivonatát ezzel a fejlécértékkel. Megjegyzés: Ez a CRC64-kivonat nem tárolódik a blobban. Ha a két kivonat nem egyezik, a művelet 400-es hibakóddal (hibás kérelem) meghiúsul. Ha a fejléc x-ms-source-content-md5 is x-ms-source-content-crc64 jelen van, a kérés 400-zal (hibás kérés) meghiúsul.Ez a fejléc a 2019-02-02-es és újabb verzióban támogatott. |
x-ms-lease-id:<ID> |
Akkor szükséges, ha a blob aktív bérletet kapott. Ha aktív bérlettel rendelkező blobon szeretné végrehajtani ezt a műveletet, adja meg a fejléc érvényes bérletazonosítóját. |
x-ms-if-sequence-number-le: <num> |
Opcionális. Ha a blob sorszáma kisebb vagy egyenlő a megadott értékkel, a kérés folytatódik. Ellenkező esetben a SequenceNumberConditionNotMet hibával meghiúsul (HTTP-állapotkód: 412 – Az előfeltétel sikertelen). |
x-ms-if-sequence-number-lt: <num> |
Opcionális. Ha a blob sorszáma kisebb, mint a megadott érték, a kérés folytatódik. Ellenkező esetben a SequenceNumberConditionNotMet hibával meghiúsul (HTTP-állapotkód: 412 – Az előfeltétel sikertelen). |
x-ms-if-sequence-number-eq: <num> |
Opcionális. Ha a blob sorszáma megegyezik a megadott értékkel, a kérés folytatódik. Ellenkező esetben a SequenceNumberConditionNotMet hibával meghiúsul (HTTP-állapotkód: 412 – Az előfeltétel sikertelen). |
If-Modified-Since |
Opcionális. Egy DateTime érték. Ezt a feltételes fejlécet adja meg, hogy csak akkor írja az oldalt, ha a blob a megadott dátum/idő óta módosult. Ha a blob nem módosult, a Blob service a 412-es állapotkódot adja vissza (az előfeltétel sikertelen). |
If-Unmodified-Since |
Opcionális. Egy DateTime érték. Adja meg ezt a feltételes fejlécet, hogy csak akkor írja az oldalt, ha a blob a megadott dátum/idő óta nem módosult. Ha a blob módosult, a Blob service a 412-es állapotkódot adja vissza (az előfeltétel sikertelen). |
If-Match |
Opcionális. ETag-érték. Adjon meg egy ETag értéket ehhez a feltételes fejléchez, hogy csak akkor írja az oldalt, ha a blob ETag értéke megegyezik a megadott értékkel. Ha az értékek nem egyeznek, a Blob service a 412-es állapotkódot adja vissza (az előfeltétel sikertelen). |
If-None-Match |
Opcionális. ETag-érték. Adjon meg egy ETag értéket ehhez a feltételes fejléchez, hogy csak akkor írja az oldalt, ha a blob ETag értéke nem egyezik meg a megadott értékkel. Ha az értékek azonosak, a Blob szolgáltatás a 412-s állapotkódot adja vissza (az előkondicionálás sikertelen). |
x-ms-encryption-scope |
Opcionális. A forrástartalom titkosításához használandó titkosítási hatókört jelzi. Ez a fejléc a 2019-02-02-es és újabb verzióban támogatott. |
x-ms-client-request-id |
Opcionális. Ügyfél által generált, átlátszatlan értéket biztosít egy 1 kibibyte (KiB) karakterkorláttal, amelyet a naplózás konfigurálásakor rögzít a naplókban. Javasoljuk, hogy ezt a fejlécet használva korrelálja az ügyféloldali tevékenységeket a kiszolgáló által kapott kérésekkel. További információ: Monitor Azure Blob Storage. |
x-ms-file-request-intent |
Kötelező, ha x-ms-copy-source a fejléc egy Azure-fájl URL-címe, a x-ms-copy-source-authorization fejléc pedig OAuth-jogkivonatot ad meg. Az elfogadható érték backup. Ez a fejléc azt határozza meg, hogy a Microsoft.Storage/storageAccounts/fileServices/readFileBackupSemantics/action vagy Microsoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/action meg kell adni, ha azok szerepelnek a x-ms-copy-source-authorization fejléc használatával engedélyezett identitáshoz rendelt RBAC-szabályzatban. A 2025-07-05-ös és újabb verziókhoz érhető el. |
Ez a művelet a feltételes fejlécek használatát is támogatja a művelet végrehajtásához, ha egy adott feltétel teljesül. További információ: Feltételes fejlécek megadása blobszolgáltatás-műveletekhez.
Kérelemfejlécek (ügyfél által megadott titkosítási kulcsok)
A 2019-02-02-es verziótól kezdve a következő fejlécek adhatók meg az ügyfél által megadott kulccsal titkosított blobok titkosítására vonatkozó kérelemben. Az ügyfél által megadott kulccsal (és a megfelelő fejléckészlettel) történő titkosítás nem kötelező.
| Kérések fejrész | Leírás |
|---|---|
x-ms-encryption-key |
Szükséges. A Base64 kódolású AES-256 titkosítási kulcs. |
x-ms-encryption-key-sha256 |
Szükséges. A titkosítási kulcs Base64 kódolású SHA256 kivonata. |
x-ms-encryption-algorithm: AES256 |
Szükséges. Megadja a titkosításhoz használni kívánt algoritmust. Ennek a fejlécnek az értéke AES256 kell legyen. |
Kérés fejlécek (forrás ügyfél által biztosított titkosítási kulcsok)
A 2026-02-06 verziótól a következő fejlécek megadhatók egy kérésben, amely egy ügyfél által biztosított kulccsal titkosított folb másolására irányuló kérés során lehetséges. Ezek a fejlécek csak akkor szükségesek, ha az Azure Storage forrás blobját egy ügyfél által biztosított kulmilla titkosítják.
E funkció előtt az ügyfelek csak a kliens oldalon forgathatták a saját kulcsaikat, amikor letöltik a régi kulmánnyal ellátott folbot, majd újra feltöltették az új kulccsal. Ezekkel az új fejlécekkel az ügyfelek most már teljesen újratitkosíthatják a szerver oldalon lévő foltot. Például az ügyfelek key1 megadhatják a forrás ügyfél által biztosított kulcsfejlécekben és key2 a célállomás által biztosított kulcsfejlécekben. Emellett az ügyfelek csak a forrás által biztosított kulcsfejléceket alkalmazva is dekódolhatnak egy blobot.
| Kérések fejrész | Leírás |
|---|---|
x-ms-source-encryption-key |
Szükséges. A Base64 kódolású AES-256 titkosítási kulcs. |
x-ms-source-encryption-key-sha256 |
Szükséges. A titkosítási kulcs Base64 kódolású SHA256 kivonata. |
x-ms-source-encryption-algorithm: AES256 |
Szükséges. Megadja a titkosításhoz használni kívánt algoritmust. Ennek a fejlécnek az értéke AES256 kell legyen. |
Kérelem tartalma
A kérelem törzse tartalmazza az oldal tartalmát.
Mintakérés
Request Syntax:
PUT https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=page HTTP/1.1
Request Headers:
x-ms-date: Fri, 16 Sep 2011 22:15:50 GMT
x-ms-version: 2018-11-09
x-ms-range: bytes=0-65535
x-ms-copy-source: https://myaccount.blob.core.windows.net/mycontainer/myblob
x-ms-source-range: bytes=0-65535
Authorization: SharedKey myaccount:4KdWDiTdA9HmIF9+WF/8WfYOpUrFhieGIT7f0av+GEI=
Content-Length: 0
Válasz
A válasz tartalmaz egy HTTP-állapotkódot és válaszfejléceket.
Állapotkód
A sikeres művelet a 201-ben (létrehozva) állapotkódot adja vissza.
További információ az állapotkódokról: Állapot- és hibakódok.
Válaszfejlécek
A művelet válasza a következő fejléceket tartalmazza. A válasz további szabványos HTTP-fejléceket is tartalmazhat. Minden szabványos fejléc megfelel a HTTP/1.1 protokoll specifikációjának
| Szemantika | Leírás |
|---|---|
ETag |
A blob ETag-je. Ha a kérelem verziója 2011-08-18 vagy újabb, az ETag érték idézőjelek közé van zárva. Az ETag feltételes Put Page From URL művelet végrehajtására használható a vagy If-Match kérelem fejléc értékének If-None-Match megadásával. |
Last-Modified |
A blob utolsó módosításának dátuma és időpontja. A dátumformátum az RFC 1123-at követi. További információ: Dátum/idő értékek megjelenítése fejlécekben. A blob írási műveletei, beleértve a blob metaadatainak vagy tulajdonságainak frissítéseit is, módosítják a blob utolsó módosításának időpontját. |
Content-MD5 |
Visszaadva, hogy az ügyfél ellenőrizni tudja az üzenettartalom integritását. A fejléc értékét a Blob Service számítja ki. Ez nem feltétlenül ugyanaz, mint a kérelemfejlécekben megadott érték. A 2019-02-02-es vagy újabb verziók esetén ez a fejléc csak akkor lesz visszaadva, ha a kérés ezzel a fejléccel rendelkezik. |
x-ms-content-crc64 |
A 2019-02-02-es vagy újabb verzióhoz. Visszaadva, hogy az ügyfél ellenőrizni tudja az üzenettartalom integritását. A fejléc értékét a Blob Service számítja ki. Ez nem feltétlenül ugyanaz, mint a kérelemfejlécekben megadott érték. Ez a fejléc akkor lesz visszaadva, ha x-ms-source-content-md5 a fejléc nem szerepel a kérelemben. |
x-ms-blob-sequence-number |
Az oldalblob aktuális sorszáma. |
x-ms-request-id |
Egyedileg azonosítja a végrehajtott kérést, és a kérés hibaelhárítására is használható. További információ: API-műveletek hibaelhárítása. |
x-ms-version |
A kérés végrehajtásához használt Blob-szolgáltatásverziót jelzi. Ez a fejléc a 2009-09-19-es és újabb verzióval kapcsolatos kérések esetén lesz visszaadva. |
Date |
A szolgáltatás által létrehozott UTC dátum/idő érték, amely a válasz indításának időpontját jelzi. |
x-ms-request-server-encrypted: true/false |
2015-12-11-es és újabb verziók. A fejléc értéke a következőre true van beállítva, ha a kérés tartalma sikeresen titkosítva lett a megadott algoritmussal, és false más módon. |
x-ms-encryption-key-sha256 |
2019-02-02-es és újabb verzió. Akkor adja vissza, ha a kérelem ügyfél által megadott kulcsot használt a titkosításhoz, így az ügyfél a megadott kulccsal biztosíthatja, hogy a kérés tartalma sikeresen titkosítva legyen. |
x-ms-encryption-scope |
2019-02-02-es és újabb verzió. Akkor adja vissza, ha a kérelem titkosítási hatókört használt, így az ügyfél a titkosítási hatókör használatával biztosíthatja, hogy a kérelem tartalma sikeresen titkosítva legyen. |
x-ms-client-request-id |
A kérések és a megfelelő válaszok hibaelhárítására használható. Ennek az élőfejnek az értéke megegyezik a x-ms-client-request-id fejléc értékével, ha az szerepel a kérelemben, és az érték legfeljebb 1024 látható ASCII-karaktert tartalmaz. Ha a x-ms-client-request-id fejléc nem szerepel a kérelemben, az nem jelenik meg a válaszban. |
Válaszüzenet tartalma
Nincs.
Mintaválasz
Response Status:
HTTP/1.1 201 Created
Response Headers:
Transfer-Encoding: chunked
x-ms-content-crc64: 77uWZTolTHU
Date: Sun, 25 Sep 2011 22:33:35 GMT
ETag: "0x8CB171BA9E94B0B"
Last-Modified: Sun, 25 Sep 2011 12:13:31 GMT
x-ms-version: 2011-08-18
x-ms-blob-sequence-number: 0
Content-Length: 0
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0
Engedélyezés
Az Azure Storage-beli adathozzáférési műveletek meghívásához engedélyezésre van szükség. Az alábbi módon engedélyezheti a Put Page From URL műveletet.
Fontos
A Microsoft azt javasolja, hogy felügyelt identitásokkal használja a Microsoft Entra ID-t az Azure Storage-kérelmek engedélyezéséhez. A Microsoft Entra ID kiváló biztonságot és egyszerű használatot biztosít a megosztott kulcsok engedélyezéséhez képest.
Az Azure Storage támogatja a Microsoft Entra ID használatát a blobadatokra irányuló kérések engedélyezéséhez. A Microsoft Entra ID-val azure-beli szerepköralapú hozzáférés-vezérléssel (Azure RBAC) adhat engedélyeket egy biztonsági tagnak. A biztonsági tag lehet felhasználó, csoport, alkalmazásszolgáltatásnév vagy Azure-beli felügyelt identitás. A biztonsági tagot a Microsoft Entra ID hitelesíti egy OAuth 2.0-jogkivonat visszaadásához. A token ezután a Blob szolgáltatással kapcsolatos kérések engedélyezésére használható.
A Microsoft Entra ID használatával történő engedélyezésről további információt A blobok hozzáférésének engedélyezése a Microsoft Entra-azonosítóvalcímű témakörben talál.
Engedélyek
Az alábbiakban azokat az RBAC-műveletet soroljuk fel, amelyek szükségesek ahhoz, hogy egy Microsoft Entra-felhasználó, csoport, felügyelt identitás vagy szolgáltatásnév meghívja a Put Page From URL műveletet, valamint a legkevésbé kiemelt, beépített Azure RBAC-szerepkört, amely tartalmazza ezt a műveletet:
- Azure RBAC-művelet:Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write
- Legkevésbé kiemelt beépített szerepkör:Storage Blob Data Közreműködő
A szerepkörök Azure RBAC-vel való hozzárendeléséről további információt Azure-szerepkör hozzárendelése a blobadatokhoz való hozzáféréshezcímű témakörben talál.
Megjegyzések
A Put Page From URL művelet egy oldaltartományt ír egy lapblobba. Ez a művelet csak meglévő lapblobon hívható meg. Nem hívható meg új lapblob létrehozásához, és nem hívható meg blokkblobon sem. A jelenleg nem létező blobnévvel való hívás Put Page From URL a BlobNotFound hibát adja vissza (HTTP-állapotkód: 404 – Nem található).
A 2020-10-02-es és újabb verziókban a Microsoft Entra-hitelesítés támogatott a másolási művelet forrásához.
Új lapblob létrehozásához hívja meg a Put Blob parancsot, és adja meg a lapblobként létrehozni kívánt blob típusát. Egy lapblob mérete legfeljebb 8 TiB lehet.
Ha a blob aktív bérlettel rendelkezik, az ügyfélnek meg kell adnia egy érvényes bérletazonosítót az oldal írására vonatkozó kérelemben.
Oldalfrissítési műveletek
A hívás Put Page From URL helyben ír a megadott lapblobon. A megadott oldal bármely tartalmát felülírja a frissítés.
Fontos
Ha a kiszolgáló időtúllépést okoz, vagy a kapcsolat megszakad a Put Page From URL, előfordulhat, hogy az oldal frissült vagy nem. Ezért folytassa a frissítés újrapróbálkozását, amíg nem kap sikerességet jelző választ.
A frissítési művelethez beküldött Put Page From URL oldaltartományok mérete legfeljebb 4 MiB lehet. Az oldal kezdő és záró tartományát 512 bájtos határokhoz kell igazítani. Ha 4 MiB-nél nagyobb oldaltartományt próbál feltölteni, a szolgáltatás a 413-as állapotkódot adja vissza (Túl nagy kérési entitás).
Egyidejűségi problémák kezelése
A Blob Service egymás után kezeli az átfedésben lévő oldalak egyidejű írását. Ez azt jelenti, hogy a szolgáltatás által feldolgozott utolsó oldal határozza meg a blob tartalmát. Ezért a blob tartalmának integritásának biztosítása érdekében az ügyfélnek az alábbi módszerek közül egy vagy több használatával kell kezelnie az átfedésben lévő lapokra történő írásokat:
Ellenőrizheti a
Last-Modifiedválaszfejléc értékét minden sikeres híváshozPut Page From URL. A Blob Service által visszaadott válaszok sorrendje nem feltétlenül felel meg a szolgáltatás által végrehajtott sorrendnek. De az értékLast-Modifiedmindig azt jelzi, hogy a szolgáltatás milyen sorrendben dolgozta fel a kéréseket.A frissítéseket feltételesen hajthatja végre a blob ETagje vagy az utolsó módosítás időpontja alapján, optimista egyidejűség használatával. Ez a megközelítés akkor működik jól, ha az egyidejű írások száma viszonylag alacsony. Erre a célra használja a feltételes kérelem fejlécét
If-Match,If-None-Match,If-Modified-Since, ésIf-Unmodified-Since.A Lease Blob hívásával egy percig zárolhatja a blobot más írásokkal, vagy hosszabb ideig, ha a bérlet megújul.
A blob sorszámával biztosíthatja, hogy egy olyan kérés újrapróbálkozása, amelyre nem érkezett válasz, ne eredményezzen egyidejű frissítéseket. Ez a megközelítés lehet a legjobb az olyan ügyfelek számára, amelyek nagy átviteli sebességet igényelnek az oldalíráshoz. A következő szakaszban részletesen ismertetjük.
A lapblob sorszámának használata a kérések újrapróbálkozásához
Ha egy hívás Put Page From URL időtúllépést okoz, vagy nem ad választ, nem lehet biztosan tudni, hogy a kérés sikeres volt-e. Ezért újra kell próbálkoznia a kéréssel, de az Azure Storage-szolgáltatások elosztott jellege miatt az eredeti kérés feldolgozása az újrapróbálkozási kérés sikeres megtörténte után lehetséges. A késleltetett eredeti kérés felülírhatja a többi frissítést, és váratlan eredményt eredményezhet. A következő sorozat szemlélteti, hogyan történhet ez:
Az
Put Page From URL"X" érték 0. oldalra írására vonatkozó kérés túllépi az időkorlátot, vagy nem ad vissza választ.Az "X" érték 0. oldalra írására irányuló újrapróbálkozási kérés sikeres.
Az "Y" érték 0. oldalra írására vonatkozó kérés sikeres.
Az eredeti kérés sikeres, és az "X" értéket a 0. oldalra írja.
A 0. oldal olvasása "X" értéket ad vissza, amikor az ügyfél ezen a ponton "Y" értéket várt.
Ez a fajta ütközés akkor fordulhat elő, ha az eredeti kérés nem ad vissza 100-499 vagy 503 (Foglalt kiszolgáló) állapotkódot. Ha a rendszer ezen állapotkódok valamelyikét adja vissza, biztos lehet benne, hogy a kérés sikeres vagy sikertelen volt-e. Ha azonban a szolgáltatás ezen a tartományon kívüli állapotkódot ad vissza, nem lehet tudni az eredeti kérés állapotát.
Az ilyen ütközések elkerülése érdekében a lapblob sorszámával biztosíthatja, hogy amikor újra megpróbál egy kérést, az eredeti kérés később nem lesz sikeres. Ehhez növelje a sorszámot, mielőtt újra megpróbálja az eredeti kérést. Ezután a feltételes sorszámfejlécekkel biztosíthatja, hogy a kérés meghiúsuljon, ha a sorszáma nem egyezik meg a várt sorszámmal. A következő sorozat szemlélteti ezt a megközelítést:
Az ügyfél létrehoz egy lapblobot a Put Blob használatával, és a sorszámát 0-ra állítja.
Az
Put Page From URL"X" érték 0. oldalra írására vonatkozó kérés, amelynekif-sequence-number-ltfejléce időtúllépésre van állítva1, vagy nem ad vissza választ.Az ügyfél meghívja a Set Blob Properties függvényt, hogy a sorszámot 1-re frissítse.
Újrapróbálkozott kérés az "X" érték 0. oldalra írására, és a
if-sequence-number-ltbeállítás2sikeres.Az "Y" érték 0. oldalra írására vonatkozó kérés a
if-sequence-number-ltsucceeds értékkel2beállítva.Az eredeti kérés feldolgozása végül megtörténik, de meghiúsul, mert megadja azt a feltételt, hogy a sorszámnak 1-nél kisebbnek kell lennie (azaz a
if-sequence-num-ltfejléc értéke1). A hiba a következő: SequenceNumberConditionNotMet (HTTP-állapotkód: 412 – Az előfeltétel sikertelen).A 0. oldal olvasása az "Y" várható értékét adja vissza.
Lásd még
Kérések engedélyezése az Azure Storage-
Állapot- és hibakódok
Időtúllépések beállítása a Blob Service műveleteihez