Megosztás a következőn keresztül:


Hozzáfűzési blokk

A Append Block művelet egy új adatblokkot véglegesíti egy meglévő hozzáfűző blob végére.

A Append Block művelet csak akkor engedélyezett, ha a blob a következő beállítással x-ms-blob-typeAppendBloblett létrehozva: . Append Block csak a 2015-02-21-es vagy újabb verzióban támogatott.

Kérés

A kérést a Append Block következőképpen hozhatja létre. A HTTPS használata ajánlott. Cserélje le a myaccount kifejezést a tárfiókja nevére.

PUT metódus kérésének URI-ja HTTP-verzió
https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=appendblock HTTP/1.1

Amikor kérést küld az emulált tárolási szolgáltatásra, adja meg az emulátor gazdagépnevét és Azure Blob Storage portot 127.0.0.1:10000, majd az emulált tárfiók nevét.

PUT metódus kérésének URI-ja HTTP-verzió
http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob?comp=appendblock HTTP/1.1

További információ: Az Azurite emulátor használata helyi Azure Storage-fejlesztéshez.

URI-paraméterek

Paraméter Leírás
timeout Választható. A timeout paraméter másodpercben van kifejezve. További információ: Időtúllépések beállítása Azure Blob Storage műveletekhez.

Kérésfejlécek

Az alábbi táblázat a szükséges és nem kötelező kérelemfejléceket ismerteti.

Kérelem fejléce Leírás
Authorization Kötelező. 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-ba .
Date vagy x-ms-date Kötelező. Megadja a kérés egyezményes világidő (UTC) formátumban kifejezett időpontját. További információ: Kérések engedélyezése az Azure Storage-ba.
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.
Content-Length Kötelező. A blokktartalom hossza bájtban. A blokkméretnek a 2022-11-02-es és újabb verziók esetében 100 MiB-nél (előzetes verzió) kisebbnek vagy egyenlőnek kell lennie. A régebbi verziók korlátait a Megjegyzések szakaszban találja.

Ha a hossz nincs megadva, a művelet a 411-ben megadott állapotkóddal meghiúsul (Hossz megadása kötelező).
Content-MD5 Választható. A blokktartalom MD5 kivonata. Ez a kivonat a blokk sértetlenségének ellenőrzésére szolgál az átvitel során. Ha ez a fejléc meg van adva, a tárolási szolgáltatás összehasonlítja az ezzel a fejlécértékkel érkezett tartalom kivonatát.

Vegye figyelembe, hogy ez az MD5-kivonat nem a blobban van tárolva.

Ha a két kivonat nem egyezik, a művelet a 400-es hibakóddal (Hibás kérelem) meghiúsul.
x-ms-content-crc64 Választható. A hozzáfűző blokk tartalmának CRC64-kivonata. Ez a kivonat a hozzáfűző blokk sértetlenségének ellenőrzésére szolgál az átvitel során. Ha ez a fejléc meg van adva, a tárolási szolgáltatás összehasonlítja az ezzel a fejlécértékkel érkezett tartalom kivonatát.

Vegye figyelembe, hogy ez a CRC64-kivonat nem a blobban van tárolva.

Ha a két kivonat nem egyezik, a művelet a 400-es hibakóddal (Hibás kérelem) meghiúsul.

Ha mind Content-MD5 a x-ms-content-crc64 fejlécek, mind a fejlécek megtalálhatók, a kérés 400-ás hibakóddal meghiúsul.

Ez a fejléc a 2019-02-02-s vagy újabb verziókban támogatott.
x-ms-encryption-scope Választható. A kérelem tartalmának titkosításához használandó titkosítási hatókört jelöli. Ez a fejléc a 2019-02-02-s vagy újabb verziókban támogatott.
x-ms-lease-id:<ID> Akkor szükséges, ha a blob rendelkezik aktív bérlettal. Ha ezt a műveletet aktív bérlettel rendelkező blobon szeretné végrehajtani, adja meg a fejléc érvényes bérletazonosítóját.
x-ms-client-request-id Választható. Ügyfél által generált, átlátszatlan értéket biztosít egy 1 kib-os (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ó: Monitorozási Azure Blob Storage.
x-ms-blob-condition-maxsize Nem kötelező feltételes fejléc. A hozzáfűző blob számára engedélyezett bájtok maximális hosszát adja meg. Ha a Append Block művelet hatására a blob túllépi ezt a korlátot, vagy ha a blob mérete már nagyobb, mint az ebben a fejlécben megadott érték, a kérés a 412-es hibakóddal meghiúsul (az előfeltétel sikertelen).
x-ms-blob-condition-appendpos Nem kötelező feltételes fejléc, amely csak a Append Block művelethez használható. A szám az összehasonlítandó bájteltolást jelzi. Append Block csak akkor sikerül, ha a hozzáfűzési pozíció egyenlő ezzel a számmal. Ha nem, a kérés a 412-s hibakóddal hiúsul meg (az előfeltétel sikertelen).

Ez a művelet további feltételes fejlécek használatát támogatja annak biztosítása érdekében, hogy az API csak egy adott feltétel teljesülése esetén legyen sikeres. További információ: Feltételes fejlécek megadása Azure Blob Storage műveletekhez.

Kérelemfejlécek (ügyfél által megadott titkosítási kulcsok)

A 2019-02-02-es verziótól kezdődően a következő fejléceket adhatja meg a kérelemben egy blob ügyfél által megadott kulccsal történő titkosítására. Az ügyfél által megadott kulccsal (és a megfelelő fejléckészlettel) történő titkosítás nem kötelező.

Kérelem fejléce Leírás
x-ms-encryption-key Kötelező. A Base64 kódolású AES-256 titkosítási kulcs.
x-ms-encryption-key-sha256 Kötelező. A titkosítási kulcs Base64 kódolású SHA256 kivonata.
x-ms-encryption-algorithm: AES256 Kötelező. Megadja a titkosításhoz használni kívánt algoritmust. A fejléc értékének a következőnek kell lennie AES256: .

A kérés törzse

A kérelemtörzs tartalmazza a blokk tartalmát.

Mintakérés

Request Syntax:  
PUT https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=appendblock  HTTP/1.1  
  
Request Headers:  
x-ms-version: 2015-02-21  
x-ms-date: <date>  
x-ms-blob-condition-appendpos: 2097152  
x-ms-blob-condition-maxsize: 4194304  
Authorization: SharedKey myaccount:J4ma1VuFnlJ7yfk/Gu1GxzbfdJloYmBPWlfhZ/xn7GI=  
Content-Length: 1048  
If-Match: "0x8CB172A360EC34B"  
  

Reagálás

A válasz tartalmaz egy HTTP-állapotkódot és egy válaszfejléceket.

Állapotkód

A sikeres művelet a 201-ben létrehozott állapotkódot adja vissza.

Az állapotkódokkal kapcsolatos információkért lásd: Állapot- és hibakódok.

Válaszfejlécek

A műveletre adott válasz 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.

Válaszfejléc Description
ETag A ETag az idézőjelek egyik értékét tartalmazza. Az ügyfél az érték használatával feltételes PUT műveleteket hajthat végre a If-Match kérelemfejléc használatá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 ábrázolása fejlécekben.

A blob írási műveletei (beleértve a blob metaadatainak vagy tulajdonságainak frissítéseit) módosítják a blob utolsó módosítási időpontját.
Content-MD5 Ez a fejléc lesz visszaadva, hogy az ügyfél ellenőrizni tudja az üzenettartalom integritását. A fejléc értékét a Blob Storage számítja ki. Nem feltétlenül ugyanaz az érték, mint a kérelemfejlécekben. A 2019-02-02-s vagy újabb verziók esetében a rendszer csak akkor adja vissza ezt a fejlécet, ha a kérelemhez tartozik ez a fejléc.
x-ms-content-crc64 A 2019-02-02-s vagy újabb verziók esetében a rendszer ezt a fejlécet adja vissza, hogy az ügyfél ellenőrizze az üzenettartalom integritását. A fejléc értékét a Blob Storage számítja ki. Nem feltétlenül ugyanaz az érték, mint a kérelemfejlécekben.

Ez a fejléc akkor lesz visszaadva, ha a Content-md5 fejléc nem szerepel a kérelemben.
x-ms-request-id Ez a fejléc egyedileg azonosítja a végrehajtott kérést, és a kérés hibaelhárításához használható.
x-ms-version A Blob Storage kérés futtatásához használt verzióját jelzi. A rendszer ezt a fejlécet adja vissza a 2009-09-19-es és újabb verzióval kapcsolatos kérésekhez.
Date Utc dátum/idő érték, amely a válasz indításának időpontját jelzi. A szolgáltatás létrehozza ezt az értéket.
x-ms-blob-append-offset Ez a válaszfejléc csak hozzáfűzési műveletekhez lesz visszaadva. A blokk véglegesített eltolását adja vissza bájtban.
x-ms-blob-committed-block-count A blobban található véglegesített blokkok száma. Ezzel szabályozhatja, hogy hány további hozzáfűzés végezhető el.
x-ms-request-server-encrypted: true/false 2015-12-11-es vagy újabb verzió. Ennek a fejlécnek az értéke akkor true van beállítva, ha a kérelem tartalma sikeresen titkosítva van a megadott algoritmussal. Ellenkező esetben az érték a következőre falsevan állítva: .
x-ms-encryption-key-sha256 2019-02-02-es vagy újabb verzió. Ez a fejléc akkor jelenik meg, ha a kérelem ügyfél által megadott kulcsot használt a titkosításhoz. Az ügyfél ezután meggyőződhet arról, hogy a kérelem tartalma sikeresen titkosítva van a megadott kulccsal.
x-ms-encryption-scope 2019-02-02-es vagy újabb verzió. Ez a fejléc akkor jelenik meg, ha a kérelem titkosítási hatókört használt. Az ügyfél ezután meggyőződhet arról, hogy a kérés tartalma sikeresen titkosítva van a titkosítási hatókör használatával.
x-ms-client-request-id Ezzel a fejlécmel elháríthatja a kéréseket és a megfelelő válaszokat. A fejléc értéke megegyezik a fejléc értékével x-ms-client-request-id , ha az szerepel a kérelemben. Az érték legfeljebb 1024 látható ASCII-karakter lehet. Ha a x-ms-client-request-id fejléc nem szerepel a kérelemben, akkor ez a fejléc nem szerepel a válaszban.

Mintaválasz

Response Status:  
HTTP/1.1 201 Created  
  
Response Headers:  
Transfer-Encoding: chunked  
x-ms-content-crc64: 77uWZTolTHU  
Date: <date>  
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0  
x-ms-blob-append-offset: 2097152  
x-ms-blob-committed–block-count: 1000  
  

Engedélyezés

Az Azure Storage-ban bármilyen adathozzáférési művelet meghívásához engedélyezésre van szükség. A műveletet az Append Block alábbiak szerint engedélyezheti.

Fontos

A Microsoft azt javasolja, hogy Microsoft Entra ID felügyelt identitásokkal engedélyezze az Azure Storage-ra irányuló kéréseket. Microsoft Entra ID a megosztott kulcs engedélyezéséhez képest kiváló biztonságot és könnyű használatot biztosít.

Az Azure Storage támogatja az Microsoft Entra ID használatát a blobadatokra irányuló kérések engedélyezéséhez. A Microsoft Entra ID azure-beli szerepköralapú hozzáférés-vezérléssel (Azure RBAC) adhat engedélyeket egy biztonsági tagnak. A rendszerbiztonsági tag lehet felhasználó, csoport, alkalmazásszolgáltatásnév vagy Azure-beli felügyelt identitás. A rendszerbiztonsági tagot a Microsoft Entra ID hitelesíti egy OAuth 2.0-jogkivonat visszaadásához. A jogkivonat ezután a Blob szolgáltatással szembeni kérések engedélyezésére használható.

További információ a Microsoft Entra ID használatával történő engedélyezésről: Blobok hozzáférésének engedélyezése Microsoft Entra ID használatával.

Engedélyek

Az alábbiakban felsoroljuk azt az RBAC-műveletet, amely a művelet meghívásához Append Block szükséges Microsoft Entra felhasználóhoz, csoporthoz, felügyelt identitáshoz vagy szolgáltatásnévhez, valamint a legkevésbé emelt szintű beépített Azure RBAC-szerepkörhöz, amely tartalmazza ezt a műveletet:

A szerepkörök Azure RBAC-vel való hozzárendeléséről további információt az Azure-szerepkör hozzárendelése a blobadatokhoz való hozzáféréshez című témakörben talál.

Megjegyzések

Append Block feltölt egy blokkot egy meglévő hozzáfűző blob végére. Az adatblokk azonnal elérhető, miután a hívás sikeres volt a kiszolgálón. Minden hozzáfűző blobhoz legfeljebb 50 000 hozzáfűzés engedélyezett. Minden blokk különböző méretű lehet.

Az alábbi táblázat a maximálisan engedélyezett blokk- és blobméreteket ismerteti a szolgáltatásverzió szerint:

Szolgáltatás verziója Maximális blokkméret (keresztül Append Block) Maximális blobméret
2022-11-02-es és újabb verzió 100 MiB (előzetes verzió) Körülbelül 4,75 TiB (100 MiB × 50 000 blokk)
2022-11-02-nél korábbi verziók 4 MiB Körülbelül 195 gibibyte (GiB) (4 MiB × 50 000 blokk)

Append Block csak akkor sikerül, ha a blob már létezik.

A nem a blokkazonosítók használatával Append Block feltöltött blobok. A Blokklista lekérése nem hívható hozzáfűző blobhoz. Ha így tesz, az hibát eredményez.

A kérelemhez a következő választható feltételes fejléceket adhatja meg:

  • x-ms-blob-condition-appendpos: Beállíthatja ezt a fejlécet egy bájteltolásra, amelynél az ügyfél a blokk hozzáfűzését várja. A kérés csak akkor sikeres, ha az aktuális eltolás megegyezik az ügyfél által megadott eltolással. Ellenkező esetben a kérés a 412-s hibakóddal hiúsul meg (az előfeltétel sikertelen).

    Az egyetlen írót használó ügyfelek ezzel a fejléccel megállapíthatják, hogy egy Append Block művelet sikeres volt-e a hálózati hiba ellenére.

  • x-ms-blob-condition-maxsize: Az ügyfelek ezzel a fejléccel gondoskodhatnak arról, hogy a hozzáfűzési műveletek ne növeljék a blob méretét a várt maximális bájtméretnél. Ha a feltétel meghiúsul, a kérés a 412-s hibakóddal hiúsul meg (az előfeltétel sikertelen).

Ha a megengedett méretnél nagyobb blokkot próbál feltölteni, a szolgáltatás a 413-es hibakódot adja vissza (a kérelem entitása túl nagy). A szolgáltatás további információkat is ad vissza a válaszban szereplő hibáról, beleértve a bájtokban megengedett maximális blokkméretet is. Ha több mint 50 000 blokkot próbál feltölteni, a szolgáltatás a 409-ös hibakódot (Ütközés) adja vissza.

Ha a blob rendelkezik aktív bérletmel, az ügyfélnek meg kell adnia egy érvényes bérletazonosítót a kérelemben, hogy blokkot írjon a blobnak. Ha az ügyfél nem ad meg bérletazonosítót, vagy érvénytelen bérletazonosítót ad meg, a Blob Storage a 412-s hibakódot adja vissza (az előfeltétel sikertelen). Ha az ügyfél bérletazonosítót ad meg, de a blobnak nincs aktív bérlete, a Blob Storage a 412-s hibakódot is visszaadja.

Ha egy meglévő blokkblobot vagy lapblobot hív meg Append Block , a szolgáltatás ütközési hibát ad vissza. Ha nem létező blobot hív Append Block meg, a szolgáltatás hibát is ad vissza.

A duplikált vagy késleltetett hozzáfűzések elkerülése

Egyetlen írói forgatókönyvben az ügyfél elkerülheti a duplikált hozzáfűzéseket vagy a késleltetett írásokat a *x-ms-blob-condition-appendpos feltételes fejléc használatával az aktuális eltolás ellenőrzéséhez. Az ügyfél a feltételes ellenőrzéssel is elkerülheti az ismétlődéseket és a késéseket a ETag használatával If-Match.

Több írós forgatókönyv esetén minden ügyfél használhat feltételes fejléceket, de ez nem feltétlenül optimális a teljesítményhez. A legnagyobb egyidejű hozzáfűzési sebesség érdekében az alkalmazásoknak redundáns hozzáfűzéseket és késleltetett hozzáfűzéseket kell kezelnie az alkalmazásrétegben. Az alkalmazás például hozzáadhat korszakokat vagy sorszámokat a hozzáfűzött adatokhoz.

Számlázás

A díjszabási kérések a Blob Storage API-kat használó ügyfelektől, közvetlenül a Blob Storage REST API-ból vagy egy Azure Storage-ügyfélkódtárból származhatnak. Ezek a kérések tranzakciónkénti díjakat halmoznak fel. A tranzakció típusa befolyásolja a fiók terhelését. Az olvasási tranzakciók például más számlázási kategóriába tartoznak, mint az írási tranzakciók. Az alábbi táblázat a tárfiók típusa alapján a kérelmek számlázási kategóriáját Append Block mutatja be:

Művelet Tárfiók típusa Számlázási kategória
Hozzáfűzési blokk Prémium szintű blokkblob
Standard általános célú v2
Standard általános célú v1
Írási műveletek

A hozzáfűzési blokkok nem támogatják az objektumszintű rétegzést, de a hozzáférési szintjüket az alapértelmezett fiókhozzáférési szint beállításából következtetik, és ennek megfelelően számlázzák. Az alapértelmezett fiókszint-beállításról további információt a Blob-adatok hozzáférési szintjei – Azure Storage című témakörben talál.

A megadott számlázási kategória díjszabásával kapcsolatos további információkért lásd: Azure Blob Storage Díjszabás.