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.
Az Azure Active Directory 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 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.

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 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. 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 a rendszer csak akkor adja vissza ezt a fejlécet, ha a kérelemhez ez a fejléc tartozik.
x-ms-content-crc64 A 2019-02-02-s és újabb verziókhoz. 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, 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 a használatával 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ó. 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 a következőre falsevan állítva: .
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 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 é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érelem 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 kapcsolódó válaszok hibaelhárítására használható. A fejléc é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.

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-ban bármilyen adathozzáférési művelet meghívásához engedélyezésre van szükség. A műveletet az Put Block From URL alábbiak szerint engedélyezheti.

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 azokat az RBAC-műveletet soroljuk fel, amelyek szükségesek ahhoz, hogy egy Microsoft Entra felhasználó, csoport vagy szolgáltatásnév meghívja a Put Block From URL műveletet, valamint a legkevésbé kiemelt beépített Azure RBAC-szerepkört, 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

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

A 2020-10-02-es és újabb verziókban az Azure Active Directory-engedélyezés támogatott a másolási művelet forrásához.

A blobok legfeljebb 100 000 nem véglegesített blokkot tartalmazhatnak 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 (a használatával Put Block From URL) Maximális blobméret (a használatával Put Block List) Maximális blobméret egyetlen írási művelettel (a használatával 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 Blokklista elhelyezése művelet meghívásával. A készlet minden blokkját egy, az adott blobban egyedi blokkazonosító azonosítja. A blokkazonosítók hatóköre egy adott blobra terjed ki, így a különböző blobok ugyanazokkal az azonosítókkal rendelkező blokkokkal rendelkezhetnek.

Ha egy még nem létező blobot hív Put Block From URL meg, egy 0-s tartalomhosszúságú új blokkblob jön létre. 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 az adott időszakon belül nem adott hozzá további blokkokat vagy véglegesített blokkokat a blobhoz, a blob szemétgyűjtésre kerül.

A művelettel Put Block From URL sikeresen feltöltött blokkok mindaddig nem lesznek blobok részei, amíg le nem véglegesítve a következővel Put Block List: . Az új vagy frissített blob véglegesítéséhez szükséges meghívás előtt Put Block List a Get Blob hívásai a nem véglegesített blokk belefoglalása 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, még le nem véglegesített blokk, a következő sikeres Put Block List művelet során véglegesítve lesz az adott azonosítóval rendelkező utolsó feltöltött blokk.

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, nem véglegesített blokkok szemétként lesznek összegyűjtve és eltávolítva a Blob Storage-ból. A nem véglegesített blokkok akkor is szemétként lesznek összegyűjtve, 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 vagy blobon. Ha a Put Blob meghívása a blobon történik, a nem véglegesített blokkok szemétgyűjtésre kerülnek.

Ha a blob rendelkezik aktív bérletmel, az ügyfélnek érvényes bérletazonosítót kell megadnia a blokk blobba írására irányuló kérelemben. 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 megad egy bérletazonosítót, de a blobnak nincs aktív bérlete, a Blob Storage a 412-ös állapotkódot is visszaadja (az előfeltétel sikertelen).

Egy adott blob esetében az összes blokkazonosítónak azonos hosszúságúnak kell lennie. Ha egy blokkot a meglévő nem véglegesített blokkok blokkazonosítóitól eltérő hosszúságú blokkazonosítóval töltenek fel, a szolgáltatás a 400-ás hibakódot (Hibás kérés) adja vissza.

A hívás Put Block From URL nem frissíti egy meglévő blob utolsó módosításának 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 olyan ügyfelektől származhatnak, amelyek Blob Storage API-kat használnak, közvetlenül a Blob Storage REST API-ból vagy egy Azure Storage-ügyfélkódtárból. 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

1Az írás kezdeményezéséhez a célfiókot egy tranzakcióra terheljük.
2A forrásfiók minden olvasási kérelemhez egy tranzakciót von maga után a forrásobjektum felé.

Emellett 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óknak. Az ugyanabban a régióban lévő fiókok közötti kimenő forgalom ingyenes.

A megadott számlázási kategóriák díjszabásáról a Azure Blob Storage Díjszabás című témakörben olvashat.

Lásd még