Blokk elhelyezése

A Put Block művelet létrehoz egy új blokkot, amely egy blob részeként lesz véglegesítve.

Kérés

A kérést az Put Block 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 értékének blockid minden blokknál 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.
Content-Length Kötelező. A blokktartalom hossza bájtban. A blokknak 4000 bájtnál (MiB) kisebbnek vagy egyenlőnek kell lennie a 2019-12-12-es és újabb verziókhoz. A régebbi verziókra vonatkozó korlátozásokért tekintse meg a Megjegyzések szakaszt.

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 integritásának 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.

Megjegyzés: 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-content-crc64 Választható. A blokktartalom CRC64-kivonata. Ez a kivonat a blokk integritásának 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.

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 Content-MD5 és az x-ms-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-s és ú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 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

A kérelem törzse tartalmazza a blokk tartalmát.

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: 2011-08-18  
x-ms-date: Sun, 25 Sep 2011 14:37:35 GMT  
Authorization: SharedKey myaccount:J4ma1VuFnlJ7yfk/Gu1GxzbfdJloYmBPWlfhZ/xn7GI=  
Content-Length: 1048576  

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.

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
Content-MD5 A visszaadott érték, hogy az ügyfél ellenőrizni tudja az üzenet tartalomintegritását. Ennek a fejlécnek az értékét a Blob Storage számítja ki, és nem feltétlenül ugyanaz az érték, mint a kérelemfejlécekben. 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ók esetében a rendszer ezt a fejlécet adja vissza, hogy az ügyfél ellenőrizhesse az üzenetek tartalomintegritási integritását. Ennek a fejlécnek az értékét a Blob Storage számítja ki, és nem feltétlenül ugyanaz az érték, mint a kérelemfejlécekben.

Ez a fejléc akkor jelenik meg, ha Content-md5 a fejléc nincs jelen 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ót jelzi. Ez a fejléc a 2009-09-19-es vagy újabb verzióval kapcsolatos kérések esetén jelenik meg.
Date A szolgáltatás által létrehozott UTC dátum/idő érték, amely jelzi a válasz indításának időpontját.
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 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 és újabb verzió. Ez a fejléc akkor jelenik meg, ha a kérelem ügyfél által megadott kulcsot használt a titkosításhoz, hogy az ügyfél a megadott kulccsal biztosítsa a kérés tartalmának sikeres titkosítását.
x-ms-encryption-scope 2019-02-02-es és újabb verzió. Ez a fejléc akkor jelenik meg, 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 meggyőződhet arról, hogy a kérelem tartalma sikeresen titkosítva van.
x-ms-client-request-id A kérések és a hozzájuk tartozó 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, akkor 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: Sun, 25 Sep 2011 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 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 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 feltölt egy blokkot a blokkblobba való későbbi felvételhez. A blokkblobok minden blokkja eltérő méretű lehet. A blokkblobok legfeljebb 50 000 véglegesített blokkot tartalmazhatnak.

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) Maximális blobméret (keresztül Put Block List) Maximális blobméret egyetlen írási művelettel (keresztül Put Blob)
2019-12-12-es és újabb verzió 4000 MiB Körülbelül 190,7 terabájt (TiB) (4000 MiB × 50 000 blokk) 5000 MiB
2016-05-31-2019-07-07-i verziók 100 MiB Körülbelül 4,75 TiB (100 MiB × 50 000 blokk) 256 MiB
2016-05-31-nél korábbi verziók 4 MiB Körülbelül 195 gibibyte (GiB) (4 MiB × 50 000 blokk) 64 MiB

A blobhoz társítható nem véglegesített blokkok maximális száma 100 000. Ha túllépi ezt a számot, a szolgáltatás a 409-es állapotkódot adja vissza (RequestEntityTooLargeBlockCountExceedsLimit).

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 ugyanazokkal az azonosítókkal rendelkezhetnek.

Ha olyan blobot hív meg Put Block , 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 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, még nem véglegesített blokk, akkor az azonosítóval rendelkező utolsó feltöltött blokk 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ítése az új blob részeként történik. 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 műveletet követő egy héten belül nem történik sikeres hívás Put BlockPut 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 egy blokkot a rendszer a meglévő, nem véglegesített blokkok blokkazonosítóitól eltérő hosszúságú blokkazonosítóval tölt fel, a szolgáltatás a 400-ás (hibás kérés) hibaválaszkódot adja vissza.

Ha 4000 MiB-nél nagyobb blokkot próbál feltölteni a 2019-12-12-es vagy újabb verzióhoz, nagyobb, mint 100 MiB a 2016-05-31-es vagy újabb verzióhoz, vagy nagyobb, mint 4 MiB a régebbi verziók esetében, a szolgáltatás a 413-es állapotkódot adja vissza (Request Entity Too Large). A szolgáltatás további információkat is ad vissza a válaszban szereplő hibáról, beleértve a maximális megengedett blokkméretet bájtban.

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

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

Az Put Block archivált blob hívása hibát ad vissza, és a vagy cool blobon való hot hívás nem módosítja 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 mutatja be:

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

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.

Lásd még

Kérések engedélyezése az Azure Storage-ba
Állapot- és hibakódok
Blobszolgáltatás hibakódjai
Időtúllépések beállítása blobszolgáltatás-műveletekhez