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


Blokk elhelyezése URL-címről

A Put Block From URL művelet létrehoz egy új blokkot, amely egy blob részeként lesz véglegesítve, ahol a tartalom egy URL-címről lesz beolvasva. Ez az API a 2018-03-28-as verziótól érhető el.

Kérés

A kérést az Put Block From URL alábbiak szerint hozhatja létre. Javasoljuk, hogy HTTPS-t használjon. Cserélje le a myaccount kifejezést a tárfiók nevére:

PUT metóduskérés URI-ja HTTP-verzió
https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=block&blockid=id HTTP/1.1

Emulált tárolási szolgáltatás kérése

Amikor kérést küld az emulált tárolási szolgáltatásra, adja meg az emulátor gazdagépnevét és a Blob-szolgáltatás portját , 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=block&blockid=id 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
blockid Kötelező. A blokkot azonosító érvényes Base64-sztringérték. A kódolás előtt a sztringnek 64 bájtnál kisebbnek vagy egyenlőnek kell lennie.

Egy adott blob esetében a paraméter megadott értékének blockid minden blokkhoz azonos méretűnek kell lennie.

Megjegyzés: A Base64 sztringnek URL-kódolásúnak kell lennie.
timeout Választható. A timeout paraméter másodpercben van kifejezve. További információ: Időtúllépések beállítása Blob szolgáltatásműveletekhez.

Kérésfejlécek

A szükséges és nem kötelező kérésfejléceket az alábbi táblázat 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érelmek engedélyezése az Azure Storage-ba.
x-ms-version Minden engedélyezett kéréshez szükséges. A kérelemhez használandó művelet verzióját adja meg. További információ: Az Azure Storage-szolgáltatások verziószámozása. A esetében Put Block From URLa verziónak 2018-03-28-nak vagy újabbnak kell lennie.
Content-Length Kötelező. A kérelem törzsében továbbított bájtok számát adja meg. A fejléc értékét 0-ra kell állítani. Ha a hossz nem 0, a művelet 400-ás állapotkóddal meghiúsul (hibás kérés).
x-ms-copy-source:name Kötelező. A forrásblob URL-címét adja meg. Az érték legfeljebb 2 kibájt (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 a kérelem URI-jában is megjelenik. A forrásblobnak nyilvánosnak vagy közös hozzáférésű jogosultságkóddal engedélyezettnek kell lennie. 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érelmek engedélyezése az Azure Storage-ba.
A Microsoft Entra csak tulajdonosi sémát támogat.
Ez a fejléc a 2020-10-02-s és újabb verziókban támogatott.
x-ms-source-range Választható. Csak a blob bájtjainak feltöltése a forrás URL-címében a megadott tartományban. Ha ez a fejléc nincs megadva, a teljes forrásblob tartalma egyetlen blokkként lesz feltöltve. További információ: A blobszolgáltatás műveleteinek tartományfejlécének megadása.
x-ms-source-content-md5 Választható. A blokktartalom MD5-kivonata az URI-ból. Ez a kivonat a blokk 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 érkezett tartalom kivonatát ezzel a fejlécértékkel.

Megjegyzés: 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-source-content-crc64 Választható. A blokktartalom CRC64-kivonata az URI-ból. Ez a kivonat a blokk 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 érkezett tartalom kivonatát ezzel a fejlécértékkel.

Megjegyzés: 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 a és x-ms-source-content-crc64 a fejléc is x-ms-source-content-md5 jelen van, a kérés 400-zal (hibás kéréssel) meghiúsul.

Ez a fejléc a 2019-02-02-s és újabb verziókban támogatott.
x-ms-encryption-scope Választható. A forrástartalom titkosításához használandó titkosítási hatókört jelzi. Ez a fejléc a 2019-02-02-s és ú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 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ó: Azure Blob Storage figyelése.

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

A 2019-02-02-es verziótól a következő fejlécek adhatók meg a blob ügyfél által megadott kulccsal történő titkosítására irányuló kérelemben. 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álandó algoritmust. A fejléc értékének a következőnek kell lennie AES256: .

A kérés törzse

Nincsenek.

Mintakérés

Request Syntax:  
PUT https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=block&blockid=AAAAAA%3D%3D HTTP/1.1  
  
Request Headers:  
x-ms-version: 2018-03-28  
x-ms-date: Sat, 31 Mar 2018 14:37:35 GMT    
Authorization: SharedKey myaccount:J4ma1VuFnlJ7yfk/Gu1GxzbfdJloYmBPWlfhZ/xn7GI=  
Content-Length: 0
x-ms-copy-source: https://myaccount.blob.core.windows.net/mycontainer/myblob
x-ms-source-range: bytes=0-499

Reagálás

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

Állapotkód

A sikeres művelet a 201-et (Létrehozva) állapotkódot adja vissza.

További információ az állapotkódokról: Á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
Content-MD5 A visszaadott érték, hogy az ügyfél ellenőrizni tudja az üzenet tartalomintegritását. A fejléc értékét a Blob Storage számítja ki. Ez nem feltétlenül ugyanaz, mint a kérelemfejlécekben megadott érték. A 2019-02-02-s és újabb verziók esetében ez a fejléc csak akkor jelenik meg, ha a kérelemhez tartozik ez a fejléc.
x-ms-content-crc64 A 2019-02-02-s és újabb verziókhoz. A visszaadott érték, hogy az ügyfél ellenőrizni tudja az üzenet tartalomintegritását. A fejléc értékét a Blob Storage számítja ki. Ez nem feltétlenül ugyanaz, mint a kérelemfejlécekben megadott érték.

Akkor adja vissza, ha x-ms-source-content-md5 a fejléc nem szerepel a kérelemben.
x-ms-request-id Egyedileg azonosítja a végrehajtott kérést, és segítségével elháríthatja a kérést. 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 Storage-verzió.
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. Ennek a fejlécnek az értéke akkor true van beállítva, ha a blokk tartalma sikeresen titkosítva van a megadott algoritmussal. Ellenkező esetben az érték értékre falsevan állítva.
x-ms-encryption-key-sha256 2019-02-02-es és újabb verzió. Akkor adja vissza, ha a kérés ügyfél által megadott kulcsot használt a titkosításhoz, így az ügyfél a megadott kulccsal meggyőződhet arról, hogy a kérés tartalma sikeresen titkosítva van.
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 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 A kérések és a megfelelő válaszok hibaelhárítására használható. A fejléc értéke megegyezik a x-ms-client-request-id kérelemben szereplő fejléc értékével, é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, akkor az nem jelenik meg a válaszban.

Mintaválasz

Response Status:  
HTTP/1.1 201 Created  
  
Response Headers:  
Transfer-Encoding: chunked  
x-ms-content-crc64: 77uWZTolTHU  
Date: Sat, 31 Mar 2018 23:47:09 GMT  
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ásakor engedélyezés szükséges. A műveletet az Put Block From URL alábbiak szerint engedélyezheti.

Fontos

A Microsoft a Microsoft Entra ID felügyelt identitásokkal való használatát javasolja az Azure Storage felé irányuló kérések engedélyezéséhez. Microsoft Entra ID a megosztott kulcsos hitelesítéshez képest kiemelkedő biztonságot és könnyű használatot biztosít.

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 azure-beli szerepköralapú hozzáférés-vezérléssel (Azure RBAC) adhat engedélyeket egy rendszerbiztonsági tagnak. A rendszerbiztonsági tag lehet felhasználó, csoport, alkalmazás-szolgáltatásnév vagy Azure-beli felügyelt identitás. A rendszerbiztonsági tag hitelesítését a Microsoft Entra ID végzi egy OAuth 2.0-jogkivonat visszaadásához. A jogkivonat ezután a Blob szolgáltatásra irányuló 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: Blobokhoz való hozzáférés engedélyezése Microsoft Entra ID használatával.

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 műveletet, valamint a legkevésbé emelt jogosultságú beépített Azure RBAC-szerepkört, amely tartalmazza ezt a Put Block From URL műveletet:

A szerepkörök Azure RBAC-vel való hozzárendelésével kapcsolatos további információkért lásd: Azure-szerepkör hozzárendelése blobadatokhoz való hozzáféréshez.

Megjegyzések

Put Block From URL feltölt egy blokkot a blokkblob későbbi felvételéhez. A blokkblobok legfeljebb 50 000 blokkot tartalmazhatnak. Az egyes blokkok mérete eltérő lehet. A feltöltött Put Block From URL blokkok maximális mérete 100 bájt (MiB). Nagyobb blokkok (legfeljebb 4000 MiB) feltöltéséhez lásd: Blokk elhelyezése.

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

A blobok legfeljebb 100 000 nem véglegesített blokktal rendelkezhetnek bármikor. Ha túllépi ezt a maximumot, a szolgáltatás a 409-es állapotkódot adja vissza (RequestEntityTooLargeBlockCountExceedsLimit).

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 Put Block From URL) Maximális blobméret (keresztül Put Block List) Maximális blobméret egyetlen írási művelettel (keresztül Put Blob From URL)
2020-04-08-es és újabb verzió 4000 MiB Körülbelül 190,7 terabájt (TiB) (4000 MiB × 50 000 blokk) 5000 MiB
2020.04.08-nál korábbi verziók 100 MiB Körülbelül 4,75 TiB (100 MiB × 50 000 blokk) 256 MiB

Miután feltöltött egy blokkkészletet, ebből a készletből létrehozhatja vagy frissítheti a blobot a kiszolgálón a Tiltólista elhelyezése művelet meghívásával. A készlet minden blokkját egy blokkazonosító azonosítja, amely egyedi az adott blobban. A blokkazonosítók hatóköre egy adott blobra terjed ki, így a különböző blobok blokkjai azonos azonosítókkal rendelkezhetnek.

Ha olyan blobot hív meg Put Block From URL , amely még nem létezik, a rendszer létrehoz egy új blokkblobot 0 tartalomhosszúságúként. Ezt a blobot a List Blobs művelet számba adja, ha a include=uncommittedblobs beállítás meg van adva. A feltöltött blokkok vagy blokkok nem lesznek véglegesítve, amíg nem hívja Put Block List meg az új blobot. Az így létrehozott blobok egy hétig megmaradnak a kiszolgálón. Ha ebben az időszakban nem adott hozzá több blokkot vagy véglegesített blokkot a blobhoz, a blob szemétgyűjtés alatt áll.

A művelettel Put Block From URL sikeresen feltöltött blokkok mindaddig nem válnak blob részévé, amíg le nem véglegesítve a következővel Put Block List: . Az új vagy frissített blob véglegesítése előtt Put Block List a Blob lekérése hívásai a nem véglegesített blokk felvétele nélkül adják vissza a blob tartalmát.

Ha olyan blokkot tölt fel, amely ugyanazzal a blokkazonosítóval rendelkezik, mint egy másik blokk, amelyet még nem véglegesített, az utolsó feltöltött blokk az azonosítóval véglegesítve lesz a következő sikeres Put Block List művelet során.

A meghívás után Put Block List a blokklistában megadott összes nem véglegesített blokk véglegesítve lesz az új blob részeként. A blob blokklistájában nem megadott véglegesített blokkok a Blob Storage-ból gyűjtött és eltávolított szemét. A nem véglegesített blokkok szintén szemétgyűjtésre kerülnek, ha az utolsó sikeres Put Block From URL műveletet követő egy héten belül nem történik sikeres hívás Put Block From URLPut Block List ugyanazon a blobon. Ha a Put Blob meghívása a blobon történik, a nem véglegesített blokkok szemétgyűjtést hajtanak ki.

Ha a blob rendelkezik aktív bérletmel, az ügyfélnek meg kell adnia egy érvényes bérletazonosítót a blokk blobba való írására vonatkozó kérelemhez. 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 állapotkó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 állapotkódot is visszaadja (az előfeltétel sikertelen).

Egy megadott blob esetében az összes blokkazonosítónak azonos hosszúságúnak kell lennie. Ha a rendszer feltölt egy blokkot a blokkazonosítóktól eltérő hosszúságú blokkazonosítóval a meglévő nem véglegesített blokkok esetében, a szolgáltatás a 400-ás hibaválaszkódot adja vissza (hibás kérés).

A hívás Put Block From URL nem frissíti egy meglévő blob utolsó módosítási időpontját.

Egy Put Block From URL lapblob hívása hibát ad vissza.

Az Put Block From URL "archív" blob hívása hibát ad vissza, és a vagy cool blobon való hot hívás nem változtatja meg a blobszintet.

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

Művelet Tárfiók típusa Számlázási kategória
Letiltás URL-címrő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
Letiltás URL-címrő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 egy tranzakcióval jár a forrásobjektumnak küldött olvasási kérésekhez.

Ezenkívül ha a forrás- és célfiókok különböző régiókban (például az USA északi régiójában és az USA déli régiójában) találhatók, a kérés átviteléhez használt sávszélességet kimenő forgalomként számítjuk fel a forrás tárfiókra. Az ugyanazon régión belüli fiókok közötti kimenő forgalom ingyenes.

A megadott számlázási kategóriák díjszabásával kapcsolatban lásd: Azure Blob Storage Díjszabás.

Lásd még