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


Blokk hozzáfűzése URL-címből

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

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

Kérés

A kérést a Append Block From URL következőképpen hozhatja létre. A HTTPS használata ajánlott. Cserélje le a myaccount nevet a tárfiók 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ó. Az időtúllépési paraméter másodpercben van kifejezve. További információ: Időtúllépések beállítása a 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 kérelem törzsében továbbított bájtok számát adja meg. Ennek a fejlécnek az értékét nullára kell állítani. Ha a hossz nem nulla, a művelet 400-ás hibakóddal (Hibás kérelem) meghiúsul.
x-ms-copy-source:name Kötelező. Megadja a forrásblob URL-címét. 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, ahogy az egy kérelem URI-jában is megjelenik. A forrásblobnak nyilvánosnak kell lennie, vagy közös hozzáférésű jogosultságkóddal kell rendelkeznie. 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> Választható. Megadja a másolási forrás engedélyezési sémáját és aláírását. További információ: Kérések engedélyezése az Azure Storage-ba.
Csak a séma tulajdonosát támogatja a Microsoft Entra ID.
Ez a fejléc a 2020-10-02-es és újabb verzióban támogatott.
x-ms-source-range Választható. Csak a blob bájtjait tölti fel a forrás URL-címében a megadott tartományban. Ha ez nincs megadva, a teljes forrásblob tartalma egyetlen hozzáfűző blokkként lesz feltöltve. További információt a Blob Storage-műveletek tartományfejlécének megadása című témakörben talál.
x-ms-source-content-md5 Választható. Az URI-ból származó hozzáfűző blokk tartalmának MD5-kivonata. Ez a kivonat a hozzáfűző blokk integritásának ellenőrzésére szolgál az adatok URI-ból való átvitele során. A fejléc megadásakor a tárolási szolgáltatás összehasonlítja a másolási forrásból érkezett tartalom kivonatát ezzel a fejlécértékkel.

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

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 Választható. A hozzáfűzési blokk URI-jának CRC64-kivonata. Ez a kivonat a hozzáfűző blokk integritásának ellenőrzésére szolgál az adatok URI-ból való átvitele során. A fejléc megadásakor a tárolási szolgáltatás összehasonlítja a másolási forrásból érkezett tartalom kivonatát ezzel a fejlécértékkel.

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

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

Ha mindkét x-ms-source-content-md5 és x-ms-source-content-crc64 fejléc is jelen van, a kérés 400-zal (hibás kéréssel) meghiúsul.

Ez a fejléc a 2019-02-02-es vagy újabb verzióban támogatott.
x-ms-encryption-scope Választható. A forrástartalom titkosításához használandó titkosítási hatókört jelöli. Ez a fejléc a 2019-02-02-es vagy újabb verzióban 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 megengedett maximális hossza bájtban. Ha a Append Block From URL 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 412-es hibával meghiúsul (az előfeltétel sikertelen).
x-ms-blob-condition-appendpos Nem kötelező feltételes fejléc, amely csak a Append Block from URL művelethez használható. Az összehasonlítandó bájteltolást jelző szám. Append Block from URL csak akkor sikerül, ha a hozzáfűzési pozíció egyenlő ezzel a számmal. Ha nem, a kérés egy 412-vel meghiúsul (az előfeltétel sikertelen).

Ez a művelet további feltételes fejlécek használatát is támogatja, 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 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: 2018-11-09  
x-ms-date: <date>  
x-ms-copy-source: https://myaccount.blob.core.windows.net/mycontainer/myblob
x-ms-source-range: bytes=0-65535
x-ms-blob-condition-appendpos: 2097152  
x-ms-blob-condition-maxsize: 4194304  
Authorization: SharedKey myaccount:J4ma1VuFnlJ7yfk/Gu1GxzbfdJloYmBPWlfhZ/xn7GI=  
Content-Length: 0 
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éket használja feltételes PUT műveletek végrehajtásához a If-Match kérelemfejléc használatával.
Last-Modified A blob utolsó módosításának dátuma/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 Blob Storage kiszámítja ennek a fejlécnek az értékét. Nem feltétlenül ugyanaz az érték, mint a kérelemfejlécekben. A 2019-02-02-es vagy újabb verzió esetén 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-es vagy újabb verzióhoz. Ez a fejléc lesz visszaadva, hogy az ügyfél ellenőrizni tudja az üzenettartalom integritását. A Blob Storage kiszámítja ennek a fejlécnek az értékét. Nem feltétlenül ugyanaz az érték, mint a kérelemfejlécekben.

Ez a fejléc akkor lesz visszaadva, ha a x-ms-source-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 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-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érelem tartalma sikeresen titkosítva van a titkosítási hatókör használatával.

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 From URL alábbiak szerint engedélyezheti.

Az ebben a szakaszban szereplő engedélyezési adatok a másolási célhelyre vonatkoznak. A másolási forrás engedélyezéséről további információt a kérelem fejlécének x-ms-copy-sourcerészleteiben talál.

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 From URL 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 From URL 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, ahol. 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 From URL) 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)

A 2020-10-02-es és újabb verziókban Microsoft Entra ID hitelesítés támogatott a másolási művelet forrásához.

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

A nem közzétett blokkazonosítók használatával Append Block From URL feltöltött blobok nem hívhatók meg a blokklista lekérése hozzáfűző blobokhoz. 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 From URL 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 HTTP-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 szolgáltatás a 412-ös hibakódot adja vissza.

Ha egy meglévő blokkblobot vagy lapblobot hív meg Append Block From URL , a szolgáltatás a 409-s hibakódot (Ütközés) adja vissza. Ha nem létező blobot hív meg Append Block From URL , a szolgáltatás a 404-s hibakódot adja vissza (nem található).

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. Lehet, hogy ez nem optimális a teljesítmény szempontjából. A legmagasabb egyidejű hozzáfűzési teljesítmény érdekében az alkalmazásoknak redundáns hozzáfűzéseket és késleltetett hozzáfűzéseket kell kezelniük az alkalmazásrétegben. Az alkalmazások például hozzáadhatnak korszakokat vagy sorszámokat a hozzáfűzött adatokhoz.

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.

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 From URL mutatja be:

Művelet Tárfiók típusa Számlázási kategória
Blokk hozzáfűzése URL-címből (célfiók 1) Prémium szintű blokkblob
Standard általános célú v2
Standard általános célú v1
Írási műveletek
Blokk hozzáfűzése URL-címből (2. forrásfiók) Prémium szintű blokkblob
Standard általános célú v2
Standard általános célú v1
Olvasási műveletek

1A célfiókot egy tranzakcióra terheljük az írás kezdeményezéséhez.
2A forrásfiók minden egyes olvasási kéréshez egy tranzakciót bonyolít a forráshoz.