Sdílet prostřednictvím


Blob Batch

Operace Blob Batch umožňuje vložení více volání rozhraní API do jednoho požadavku HTTP. Toto rozhraní API podporuje dva typy dílčích dotazů: Nastavení úrovně objektů blob pro objekty blob bloku a Odstranění objektu blob. Odpověď vrácená serverem na dávkový požadavek obsahuje výsledky pro každý dílčí požadavek v dávce. Dávkový požadavek a odpověď používají syntaxi specifikace dávkového OData zpracování s úpravami sémantiky. Toto rozhraní API je k dispozici od verze 2018-11-09.

Žádost

Požadavek můžete vytvořit Blob Batch následujícím způsobem. Doporučuje se https. Nahraďte myaccount názvem vašeho účtu úložiště.

Metoda Identifikátor URI žádosti Verze PROTOKOLU HTTP
POST https://myaccount.blob.core.windows.net/?comp=batch

https://myaccount.blob.core.windows.net/containername?restype=container&comp=batch
HTTP/1.1

Parametry identifikátoru URI

V identifikátoru URI požadavku můžete zadat následující další parametry.

Parametr Popis
timeout Nepovinný parametr. Parametr časového limitu je vyjádřen v sekundách s maximální hodnotou 120 sekund. Další informace najdete v tématu Nastavení časových limitů pro operace služby Blob Storage.
restype Volitelné, verze 2020-04-08 a novější. Jediná podporovaná hodnota parametru restype je container. Při zadání tohoto parametru musí identifikátor URI obsahovat název kontejneru. Všechny podřízené požadavky musí být vymezeny na stejný kontejner.

Hlavičky požadavku

Následující tabulka popisuje požadované a volitelné hlavičky požadavků.

Hlavička požadavku Popis
Authorization Povinná hodnota. Určuje schéma autorizace, název účtu úložiště a podpis. Další informace najdete v tématu Autorizace požadavků do služby Azure Storage.
Date nebo x-ms-date Povinná hodnota. Určuje formát UTC (Coordinated Universal Time). Další informace najdete v tématu Autorizace požadavků do služby Azure Storage.
x-ms-version Povinné pro všechny autorizované žádosti. Určuje verzi operace, která se má použít pro tento požadavek. Tato verze se použije pro všechny dílčí požadavky. Další informace najdete v tématu Správa verzí pro služby Azure Storage.
Content-Length Povinná hodnota. Délka požadavku.
Content-Type Povinná hodnota. Hodnota této hlavičky musí být multipart/mixed, s hranicí dávky. Příklad hodnoty záhlaví: multipart/mixed; boundary=batch_a81786c8-e301-4e42-a729-a32ca24ae252.
x-ms-client-request-id Nepovinný parametr. Poskytuje klientem vygenerovanou neprůselnou hodnotu s limitem počtu znaků 1 kibibajt (KiB), který je zaznamenán v protokolech při konfiguraci protokolování. Důrazně doporučujeme použít tuto hlavičku ke korelaci aktivit na straně klienta s požadavky, které server přijímá. Další informace najdete v tématu Monitorování Azure Blob Storage.

Text požadavku

Text požadavku pro dávku objektů blob obsahuje seznam všech podpožadů. Formát používá syntaxi OData specifikace dávky s úpravami sémantiky.

Tělo požadavku začíná dávkovou hranicí následovanou dvěma povinnými hlavičkami: hlavičkou Content-Type s hodnotou application/httpa hlavičkou Content-Transfer-Encoding s hodnotou binary. Následuje volitelná Content-ID hlavička s řetězcovou hodnotou pro sledování jednotlivých podpožadů. Odpověď obsahuje hlavičku Content-ID pro každou odpovídající odpověď na dílčí požadavky, která se má použít ke sledování.

Za těmito hlavičkami požadavku následuje povinný prázdný řádek a definice pro každý dílčí požadavek. Text každého dílčího požadavku je úplný požadavek HTTP se slovesem, adresou URL, hlavičkami a textem potřebným pro požadavek. Všimněte si následujících upozornění:

  • Podpožady by neměly mít .x-ms-version header Všechny podpožady se spouštějí s verzí dávkové žádosti nejvyšší úrovně.
  • Adresa URL podřízeného požadavku by měla obsahovat pouze cestu k adrese URL (bez hostitele).
  • Každý dávkový požadavek podporuje maximálně 256 dílčích požadavků.
  • Všechny podpožady musí být stejného typu požadavku.
  • Každý dílčí žádost je autorizován samostatně s informacemi poskytnutými v dílčím požadavku.
  • Každý řádek v textu požadavku by měl končit \r\n znaky.

Ukázkový požadavek

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-- 

Odpověď

Odpověď obsahuje stavový kód HTTP a sadu hlaviček odpovědi pro dávkový požadavek nejvyšší úrovně. Odpověď obsahuje také informace o odpovědích pro všechny své dílčí požadavky.

Text odpovědi

Dávková odpověď je multipart/mixed odpověď, která obsahuje odpověď pro každý dílčí dotaz. Odpověď je blokovaná. Každá podpona začíná záhlavím Content-Type: application/http . Hlavička Content-ID následuje, pokud byla v požadavku poskytnuta. Následuje stavový kód odpovědi HTTP a hlavičky odpovědi pro každý dílčí požadavek.

Informace o hlavičkách vrácených jednotlivými dílčími požadavky najdete v dokumentaci k operacím Odstranění objektu blob a nastavení vrstvy objektů blob .

Ukázková odpověď

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

Stavový kód

Pokud je dávkový požadavek správně vytvořený a autorizovaný, operace vrátí stavový kód 202 (Přijato). Každý dílčí žádost má svou vlastní odpověď v závislosti na výsledku operace. Stav podrequest se vrátí v textu odpovědi.

Další informace najdete v tématu Stavové kódy a kódy chyb.

Hlavičky odpovědi

Odpověď na tuto operaci obsahuje následující hlavičky. Odpověď může také obsahovat další standardní hlavičky HTTP. Všechny standardní hlavičky odpovídají specifikaci protokolu HTTP/1.1.

Autorizace

Pokud restype=container je vynechán, musíte autorizovat nadřazený dávkový požadavek pomocí sdíleného klíče. Můžete použít přístupový klíč účtu, sdílený přístupový podpis účtu nebo Microsoft Entra. Podrobnosti o konkrétních autorizačních mechanismech, které jsou uvedené níže.

Pokud restype=container je součástí žádosti, můžete autorizovat nadřazenou dávkovou žádost prostřednictvím sdíleného klíče nebo Microsoft Entra. Můžete také autorizovat pomocí sdíleného přístupového podpisu, který je podepsaný některým z těchto mechanismů autorizace. Podrobnosti o konkrétních autorizačních mechanismech, které jsou uvedené níže.

Každý dílčí žádost je autorizován samostatně. Podpožadování podporuje stejné autorizační mechanismy, které operace podporuje, pokud není součástí dávkové operace.

Důležité

Microsoft doporučuje používat Microsoft Entra ID se spravovanými identitami k autorizaci požadavků do služby Azure Storage. Microsoft Entra ID ve srovnání s autorizací sdíleného klíče poskytuje vynikající zabezpečení a snadné použití.

Azure Storage podporuje autorizaci požadavků na data objektů blob pomocí Microsoft Entra ID. S Microsoft Entra ID můžete pomocí řízení přístupu na základě role v Azure (Azure RBAC) udělit oprávnění k objektu zabezpečení. Objektem zabezpečení může být uživatel, skupina, instanční objekt aplikace nebo spravovaná identita Azure. Objekt zabezpečení ověří Microsoft Entra ID, aby vrátil token OAuth 2.0. Token se pak dá použít k autorizaci požadavku na službu Blob Service.

Další informace o autorizaci pomocí Microsoft Entra ID najdete v tématu Autorizace přístupu k objektům blob pomocí Microsoft Entra ID.

Oprávnění

Níže jsou uvedené akce RBAC nezbytné k tomu, aby uživatel, skupina, spravovaná identita nebo instanční objekt Microsoft Entra vytvořil nadřazený Blob Batch požadavek, a předdefinovanou roli Azure RBAC s nejnižšími oprávněními, která zahrnuje tuto akci:

Další informace o přiřazování rolí pomocí Azure RBAC najdete v tématu Přiřazení role Azure pro přístup k datům objektů blob.

Fakturace

Požadavek Blob Batch REST se počítá jako jedna transakce a každý jednotlivý dílčí požadavek se také počítá jako jedna transakce. Další informace o fakturaci jednotlivých podpožadů najdete v dokumentaci k operacím Odstranění objektu blob a Nastavení úrovně objektů blob .

Požadavky na ceny můžou pocházet od klientů, kteří používají rozhraní API služby Blob Storage, a to buď přímo prostřednictvím rozhraní REST API služby Blob Storage, nebo z klientské knihovny služby Azure Storage. Za tyto žádosti se účtují poplatky za každou transakci. Typ transakce ovlivňuje způsob účtování za účet. Například transakce čtení se načítají do jiné kategorie fakturace než transakce zápisu. Následující tabulka uvádí kategorii fakturace nadřazeného Blob Batch požadavku na základě typu účtu úložiště:

Operace Typ účtu úložiště Kategorie fakturace
Dávka objektů blob (nastavení úrovně objektu blob) Objekt blob bloku úrovně Premium
Standard pro obecné účely v2
Další operace

Informace o cenách pro zadanou kategorii fakturace najdete v tématu Azure Blob Storage Ceny.

Poznámky

Jednou z hlavních výhod použití dávkového požadavku je snížení počtu připojení, která musí klient otevřít. Mějte na paměti následující omezení:

  • Podporované dílčí požadavky v dávce jsou Set Blob Tier (pro objekty blob bloku) a Delete Blob.
  • Podporuje pouze 256 podpožadů v jedné dávce. Velikost textu žádosti dávky nesmí překročit 4 MB.
  • Prázdný dávkový požadavek selže s kódem 400 (Chybný požadavek).
  • Neexistují žádné záruky pořadí provádění dílčích dotazů dávky.
  • Spuštění dávkového podpožadování není atomické. Každý dílčí žádost běží nezávisle na sobě.
  • Každý dílčí dotaz musí být pro prostředek v rámci stejného účtu úložiště. Jeden dávkový požadavek nepodporuje spouštění požadavků z různých účtů úložiště.
  • Vnořený text požadavku se nepodporuje.
  • Pokud se serveru nepodaří analyzovat text požadavku, celá dávka selže a nespustí se žádný požadavek.
  • Všimněte si, že SAS účtu je jediný typ sdíleného přístupového podpisu, který Blob Batchpodporuje , pokud dávka nepoužívá restype=container.

Vymezení rozsahu všech podpožadů na konkrétní kontejner

Počínaje rest verzí 2020-04-08 Blob Batch podporuje rozhraní API vymezení dílčích dotazů na zadaný kontejner. Pokud identifikátor URI požadavku obsahuje název kontejneru restype=container a parametr , musí se každý dílčí požadavek vztahovat na stejný kontejner. Pokud název kontejneru zadaný pro podquest neodpovídá názvu kontejneru zadanému v identifikátoru URI, vrátí služba kód chyby 400 (Chybný požadavek).

Všechny mechanismy autorizace podporované pro kontejner jsou platné pro Blob Batch operaci, která je vymezena na kontejner. Každý dílčí žádost odešle autorizační hlavičku do služby.

Viz také

Autorizace požadavků na stav služby Azure Storagea kódy chybVe službě Blob Storage – kódy chybNastavení časových limitů pro operace služby Blob Storage