Blob Batch
A Blob Batch
művelettel több API-hívás is beágyazható egyetlen HTTP-kérelembe. Ez az API kétféle allekérdezéstípust támogat: Blobszint beállítása blokkblobokhoz és Blob törlése. A kiszolgáló által a kötegkérelmekhez visszaadott válasz tartalmazza a kötegben lévő egyes részkérések eredményeit. A kötegelt kérelem és válasz a kötegelt feldolgozás specifikációjának szintaxisát OData
használja, a szemantika módosításával. Ez az API a 2018-11-09-es verziótól érhető el.
Kérés
A kérést a Blob Batch
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.
Metódus | Kérés URI-ja | HTTP-verzió |
---|---|---|
POST |
https://myaccount.blob.core.windows.net/?comp=batch https://myaccount.blob.core.windows.net/containername?restype=container&comp=batch |
HTTP/1.1 |
URI-paraméterek
A kérelem URI-ján a következő további paramétereket adhatja meg.
Paraméter | Leírás |
---|---|
timeout |
Választható. Az időtúllépési paraméter másodpercben van kifejezve, maximális értéke 120 másodperc. További információ: Időtúllépések beállítása a Blob Storage-műveletekhez. |
restype |
Nem kötelező, 2020-04-08-es és újabb verzió. A paraméterhez az egyetlen támogatott érték a restype container következő: . A paraméter megadásakor az URI-nak tartalmaznia kell a tároló nevét. Minden részlekérdezésnek ugyanahhoz a tárolóhoz kell tartoznia. |
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 tárfiók nevét és az aláírást. További információ: Kérések 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. Ez a verzió lesz használva az összes albekéréshez. További információ: Az Azure Storage-szolgáltatások verziószámozása. |
Content-Length |
Kötelező. A kérelem hossza. |
Content-Type |
Kötelező. Ennek a fejlécnek a értéke , multipart/mixed köteghatárral. Példa fejlécértékre: multipart/mixed; boundary=batch_a81786c8-e301-4e42-a729-a32ca24ae252 . |
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. |
A kérés törzse
A blobköteg kérelemtörzse tartalmazza az összes részkérés listáját. A formátum a kötegspecifikáció szintaxisát OData
használja, a szemantika módosításával.
A kérelemtörzs egy köteghatárral kezdődik, amelyet két kötelező fejléc követ: a Content-Type
fejléc az értékkel application/http
, a fejléc pedig az Content-Transfer-Encoding
értékkel binary
. Ezt egy opcionális Content-ID
fejléc követi, amelynek sztringértéket tartalmaz az egyes részkérések nyomon követéséhez. A válasz tartalmazza a Content-ID
nyomon követéshez használandó összes megfelelő subrequest-válasz fejlécét.
Ezeket a kérésfejléceket egy kötelező üres sor követi, majd az egyes részkérések definíciója. Az egyes alkérelmek törzse egy teljes HTTP-kérés, amely a kéréshez szükséges igével, URL-címmel, fejlécekkel és törzstel rendelkezik. Jegyezze fel a következő kikötéseket:
- A subrequests nem rendelkezhet a következőkkel
x-ms-version header
: . A rendszer az összes allekérdezést a legfelső szintű kötegelt kérelemverzióval futtatja. - A subrequest URL-címnek csak az URL-cím elérési útját kell rendelkeznie (a gazdagép nélkül).
- Minden kötegelt kérelem legfeljebb 256 részkérést támogat.
- Minden kérelemtípusnak azonos típusúnak kell lennie.
- Minden alküldetés külön engedélyezve van, a részfoglalásban megadott információkkal együtt.
- A kérelem törzsének minden sorának \r\n karakterekkel kell végződnie.
Mintakérés
POST http://account.blob.core.windows.net/?comp=batch HTTP/1.1
Content-Type: multipart/mixed; boundary=batch_357de4f7-6d0b-4e02-8cd2-6361411a9525
x-ms-version: 2018-11-09
Authorization: SharedKey account:QvaoYDQ+0VcaA/hKFjUmQmIxXv2RT3XwwTsOTHL39HI=
Host: 127.0.0.1:10000
Content-Length: 1569
--batch_357de4f7-6d0b-4e02-8cd2-6361411a9525
Content-Type: application/http
Content-Transfer-Encoding: binary
Content-ID: 0
DELETE /container0/blob0 HTTP/1.1
x-ms-date: Thu, 14 Jun 2018 16:46:54 GMT
Authorization: SharedKey account:G4jjBXA7LI/RnWKIOQ8i9xH4p76pAQ+4Fs4R1VxasaE=
Content-Length: 0
--batch_357de4f7-6d0b-4e02-8cd2-6361411a9525
Content-Type: application/http
Content-Transfer-Encoding: binary
Content-ID: 1
DELETE /container1/blob1 HTTP/1.1
x-ms-date: Thu, 14 Jun 2018 16:46:54 GMT
Authorization: SharedKey account:IvCoYDQ+0VcaA/hKFjUmQmIxXv2RT3XwwTsOTHL39HI=
Content-Length: 0
--batch_357de4f7-6d0b-4e02-8cd2-6361411a9525
Content-Type: application/http
Content-Transfer-Encoding: binary
Content-ID: 2
DELETE /container2/blob2 HTTP/1.1
x-ms-date: Thu, 14 Jun 2018 16:46:54 GMT
Authorization: SharedKey account:S37N2JTjcmOQVLHLbDmp2johz+KpTJvKhbVc4M7+UqI=
Content-Length: 0
--batch_357de4f7-6d0b-4e02-8cd2-6361411a9525--
Reagálás
A válasz tartalmaz egy HTTP-állapotkódot és egy válaszfejléceket a legfelső szintű kötegelt kéréshez. A válasz az összes részkérésre vonatkozó válaszinformációkat is tartalmazza.
Választörzs
A kötegelt válasz egy multipart/mixed
válasz, amely az egyes részkérések válaszát tartalmazza. A válasz darabolt. Minden alresponse a Content-Type: application/http
fejlécmel kezdődik. A Content-ID
fejléc a következő, ha a kérelemben meg lett adva. Ezt követi a HTTP-válasz állapotkódja, valamint az egyes részkérések válaszfejlécei.
Az egyes alkonfigurációk által visszaadott fejlécekről a Blob törlése és a Blobréteg beállítása művelet dokumentációjában olvashat.
Mintaválasz
HTTP/1.1 202 Accepted
Transfer-Encoding: chunked
Content-Type: multipart/mixed; boundary=batchresponse_66925647-d0cb-4109-b6d3-28efe3e1e5ed
x-ms-request-id: 778fdc83-801e-0000-62ff-033467000000
x-ms-version: 2018-11-09
409
--batchresponse_66925647-d0cb-4109-b6d3-28efe3e1e5ed
Content-Type: application/http
Content-ID: 0
HTTP/1.1 202 Accepted
x-ms-delete-type-permanent: true
x-ms-request-id: 778fdc83-801e-0000-62ff-0334671e284f
x-ms-version: 2018-11-09
--batchresponse_66925647-d0cb-4109-b6d3-28efe3e1e5ed
Content-Type: application/http
Content-ID: 1
HTTP/1.1 202 Accepted
x-ms-delete-type-permanent: true
x-ms-request-id: 778fdc83-801e-0000-62ff-0334671e2851
x-ms-version: 2018-11-09
--batchresponse_66925647-d0cb-4109-b6d3-28efe3e1e5ed
Content-Type: application/http
Content-ID: 2
HTTP/1.1 404 The specified blob does not exist.
x-ms-error-code: BlobNotFound
x-ms-request-id: 778fdc83-801e-0000-62ff-0334671e2852
x-ms-version: 2018-11-09
Content-Length: 216
Content-Type: application/xml
<?xml version="1.0" encoding="utf-8"?>
<Error><Code>BlobNotFound</Code><Message>The specified blob does not exist.
RequestId:778fdc83-801e-0000-62ff-0334671e2852
Time:2018-06-14T16:46:54.6040685Z</Message></Error>
--batchresponse_66925647-d0cb-4109-b6d3-28efe3e1e5ed--
0
Állapotkód
Ha a kötegelt kérelem megfelelően formázott és engedélyezett, akkor a művelet a 202-s állapotkódot adja vissza (Elfogadva). Minden részreküldőnek saját válasza van a művelet eredményétől függően. A rendszer a válasz törzsében adja vissza a subrequest állapotot.
További információ: Á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.
Engedélyezés
Ha restype=container
nincs megadva, engedélyeznie kell a szülő kötegkérelmet egy megosztott kulccsal. Használhatja a fiók hozzáférési kulcsát, a fiók közös hozzáférésű jogosultságkódját vagy Microsoft Entra. Az alább látható konkrét engedélyezési mechanizmusok részletei.
Ha restype=container
szerepel a kérelemben, engedélyezheti a szülő kötegkérelmet egy megosztott kulccsal vagy Microsoft Entra. Az engedélyezési mechanizmusok bármelyike által aláírt közös hozzáférésű jogosultságkóddal is engedélyezheti az engedélyezést. Az alább látható konkrét engedélyezési mechanizmusok részletei.
Az egyes alkondensek külön-külön engedélyezve lesznek. A subrequest ugyanazokat az engedélyezési mechanizmusokat támogatja, amelyeket a művelet akkor is támogat, ha az nem része egy kötegelt műveletnek.
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 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 fölérendelt kérést Blob Batch
küldjön, 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.
Számlázás
A Blob Batch
REST-kérelem egy tranzakciónak számít, és minden egyes rész-lekérés egy tranzakciónak is számít. Az egyes alkonfigurációk számlázásával kapcsolatos további információkért tekintse meg a Blob törlése és a Blobszint beállítása művelet dokumentációját.
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 egy szülőkérés számlázási kategóriáját Blob Batch
mutatja be a tárfiók típusa alapján:
Művelet | Tárfiók típusa | Számlázási kategória |
---|---|---|
Blob Batch (blobszint beállítása) | Prémium szintű blokkblob Standard általános célú v2 |
Egyéb 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.
Megjegyzések
A kötegelt kérések használatának egyik fő előnye az ügyfél által megnyitni kívánt kapcsolatok számának csökkentése. Vegye figyelembe a következő korlátozásokat:
- A köteg támogatott részfoglalásai a következők
Set Blob Tier
: (blokkblobok esetén) ésDelete Blob
. - Egyetlen kötegben legfeljebb 256 alkondenst támogat. A kötegelt kérelem törzsének mérete nem haladhatja meg a 4 MB-ot.
- Az üres kötegkérelem a 400-ás kóddal meghiúsul (hibás kérés).
- A köteg-részkérések végrehajtásának sorrendjére nincs garancia.
- A batch subrequest végrehajtása nem atomi. Minden részfoglalás egymástól függetlenül fut.
- Minden alkondensnek egy erőforráshoz kell tartoznia ugyanazon a tárfiókon belül. Egyetlen kötegelt kérelem nem támogatja a különböző tárfiókokból érkező kérések futtatását.
- A beágyazott kérelemtörzsek nem támogatottak.
- Ha a kiszolgáló nem tudja elemezni a kérelem törzsét, a teljes köteg meghiúsul, és nem fut a kérés.
- Vegye figyelembe, hogy a fiók SAS az egyetlen olyan közös hozzáférésű jogosultságkód-típus, amelyet
Blob Batch
a támogat, ha a köteg nem használjarestype=container
.
Az összes alregisztrációs kérelem hatóköre egy adott tárolóra
A 2020-04-08-es REST-verziótól kezdve az API támogatja a Blob Batch
hatókörkezelést egy adott tárolóra. Ha a kérelem URI-ja tartalmazza a tároló nevét és a restype=container
paramétert, akkor minden albekérésnek ugyanarra a tárolóra kell vonatkoznia. Ha a kérelemhez megadott tárolónév nem egyezik meg az URI-ben megadott tárolónévvel, a szolgáltatás a 400-ás hibakódot adja vissza (Hibás kérelem).
A tárolókhoz támogatott összes engedélyezési mechanizmus érvényes a Blob Batch
tárolóra kiterjedő műveletre. Minden alkondens egy engedélyezési fejlécet küld a szolgáltatásnak.
Lásd még
Kérések engedélyezése az Azure Storageállapotához és hibakódokhozBlob Storage-hibakódokA Blob Storage-műveletek időtúllépéseinek beállítása