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:10000
majd 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 false van á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:
- Azure RBAC-művelet:Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write
- Legkevésbé emelt szintű beépített szerepkör:Storage-blobadatok közreműködője
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 Block
Put 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