Vložit blok
Operace Put Block
vytvoří nový blok, který se potvrdí jako součást objektu blob.
Žádost
Požadavek můžete vytvořit Put Block
následujícím způsobem. Doporučujeme použít https. Nahraďte myaccount názvem vašeho účtu úložiště:
Identifikátor URI požadavku metody PUT | Verze PROTOKOLU HTTP |
---|---|
https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=block&blockid=id |
HTTP/1.1 |
Žádost o službu emulovaného úložiště
Když vytváříte požadavek na službu emulovaného úložiště, zadejte název hostitele emulátoru a port služby Blob Service jako 127.0.0.1:10000
a pak název emulovaného účtu úložiště:
Identifikátor URI požadavku metody PUT | Verze PROTOKOLU HTTP |
---|---|
http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob?comp=block&blockid=id |
HTTP/1.1 |
Další informace najdete v tématu Použití emulátoru Azurite pro místní vývoj služby Azure Storage.
Parametry identifikátoru URI
Parametr | Popis |
---|---|
blockid |
Povinná hodnota. Platná hodnota řetězce Base64, která identifikuje blok. Před kódováním musí mít řetězec velikost menší nebo rovna 64 bajtům. U zadaného objektu blob musí být délka hodnoty parametru blockid stejná pro každý blok.Poznámka: Řetězec Base64 musí být zakódovaný na adrese URL. |
timeout |
Nepovinný parametr. Parametr timeout je vyjádřen v sekundách. Další informace najdete v tématu Nastavení časových limitů pro operace služby Blob Service. |
Hlavičky požadavku
Požadované a volitelné hlavičky požadavků jsou popsané v následující tabulce:
Hlavička požadavku | Popis |
---|---|
Authorization |
Povinná hodnota. Určuje schéma autorizace, název účtu a podpis. Další informace najdete v tématu Autorizace žádostí 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. Další informace najdete v tématu Správa verzí pro služby Azure Storage. |
Content-Length |
Povinná hodnota. Délka obsahu bloku v bajtech. Velikost bloku musí být menší než nebo rovna 4 000 mebibajtů (MiB) pro verzi 2019-12-12 a novější. Omezení ve starších verzích najdete v části Poznámky . Pokud není délka zadána, operace selže se stavovým kódem 411 (Délka požadována). |
Content-MD5 |
Nepovinný parametr. Hodnota hash MD5 obsahu bloku. Tato hodnota hash se používá k ověření integrity bloku během přenosu. Když je tato hlavička zadána, služba úložiště porovná hodnotu hash obsahu, který byl doručen, s touto hodnotou hlavičky. Poznámka: Tato hodnota hash MD5 se s objektem blob neukládá. Pokud se tyto dvě hodnoty hash neshodují, operace selže s kódem chyby 400 (Chybný požadavek). |
x-ms-content-crc64 |
Nepovinný parametr. Hodnota hash CRC64 obsahu bloku. Tato hodnota hash se používá k ověření integrity bloku během přenosu. Když je tato hlavička zadána, služba úložiště porovná hodnotu hash obsahu, který byl doručen, s touto hodnotou hlavičky. Poznámka: Tato hodnota hash CRC64 se s objektem blob neukládá. Pokud se tyto dvě hodnoty hash neshodnou, operace selže s kódem chyby 400 (Chybný požadavek). Pokud jsou k dispozici hlavičky Content-MD5 i x-ms-content-crc64, požadavek selže s chybou 400 (chybný požadavek). Tato hlavička je podporovaná ve verzích 2019-02-02 a novějších. |
x-ms-encryption-scope |
Nepovinný parametr. Označuje rozsah šifrování, který se má použít k šifrování obsahu požadavku. Tato hlavička je podporovaná ve verzích 2019-02-02 a novějších. |
x-ms-lease-id:<ID> |
Vyžaduje se, pokud má objekt blob aktivní zapůjčení. Pokud chcete tuto operaci provést s objektem blob s aktivním zapůjčením, zadejte platné ID zapůjčení pro tuto hlavičku. |
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í služby Azure Blob Storage. |
Hlavičky požadavků (šifrovací klíče poskytnuté zákazníkem)
Od verze 2019-02-02 je možné v požadavku na šifrování objektu blob pomocí klíče poskytnutého zákazníkem zadat následující hlavičky. Šifrování pomocí klíče poskytnutého zákazníkem (a odpovídající sady hlaviček) je volitelné.
Hlavička požadavku | Popis |
---|---|
x-ms-encryption-key |
Povinná hodnota. Šifrovací klíč AES-256 s kódováním Base64. |
x-ms-encryption-key-sha256 |
Povinná hodnota. Hodnota hash SHA256 šifrovacího klíče v kódování Base64. |
x-ms-encryption-algorithm: AES256 |
Povinná hodnota. Určuje algoritmus, který se má použít pro šifrování. Hodnota této hlavičky musí být AES256 . |
Text požadavku
Text požadavku obsahuje obsah bloku.
Ukázkový požadavek
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
Odpověď
Odpověď obsahuje stavový kód HTTP a sadu hlaviček odpovědi.
Stavový kód
Úspěšná operace vrátí stavový kód 201 (Vytvořeno).
Informace o stavových kódech 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.
Hlavička odpovědi | Description |
---|---|
Content-MD5 |
Vráceno, aby klient mohl zkontrolovat integritu obsahu zprávy. Hodnota této hlavičky je vypočítáná službou Blob Storage a nemusí se nutně jednat o stejnou hodnotu, která je zadaná v hlavičce požadavku. Ve verzích 2019-02-02 a novějších se tato hlavička vrátí pouze v případě, že požadavek tuto hlavičku obsahuje. |
x-ms-content-crc64 |
Pro verze 2019-02-02 a novější se tato hlavička vrátí, aby klient mohl zkontrolovat integritu obsahu zprávy. Hodnota této hlavičky je vypočítáná službou Blob Storage a nemusí se nutně jednat o stejnou hodnotu, která je zadaná v hlavičce požadavku. Tato hlavička se vrátí, když Content-md5 v požadavku není. |
x-ms-request-id |
Jedinečně identifikuje požadavek, který byl proveden, a můžete ho použít k řešení potíží s požadavkem. Další informace najdete v tématu Řešení potíží s operacemi rozhraní API. |
x-ms-version |
Označuje verzi služby Blob Storage, která se použila ke spuštění požadavku. Tato hlavička se vrátí pro požadavky, které byly provedeny ve verzi 2009-09-19 nebo novější. |
Date |
Hodnota data a času UTC vygenerovaná službou, která označuje, kdy byla odpověď inicializována. |
x-ms-request-server-encrypted: true/false |
Verze 2015-12-11 a novější. Hodnota této hlavičky je nastavena na true , pokud je obsah požadavku úspěšně zašifrován pomocí zadaného algoritmu. V opačném případě je hodnota nastavena na false hodnotu . |
x-ms-encryption-key-sha256 |
Verze 2019-02-02 a novější. Tato hlavička se vrátí, pokud požadavek použil k šifrování klíč poskytnutý zákazníkem, aby klient mohl zajistit, že se obsah požadavku úspěšně zašifruje pomocí zadaného klíče. |
x-ms-encryption-scope |
Verze 2019-02-02 a novější. Tato hlavička se vrátí, pokud požadavek použil obor šifrování, aby klient mohl zajistit, že se obsah požadavku úspěšně zašifruje pomocí oboru šifrování. |
x-ms-client-request-id |
Dá se použít k řešení potíží s požadavky a jejich odpovídajícími odpověďmi. Hodnota této hlavičky se rovná hodnotě x-ms-client-request-id hlavičky, pokud je v požadavku, a hodnota neobsahuje více než 1 024 viditelných znaků ASCII. Pokud hlavička x-ms-client-request-id v požadavku není, není v odpovědi. |
Ukázková odpověď
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
Autorizace
Při volání jakékoli operace přístupu k datům ve službě Azure Storage se vyžaduje autorizace. Operaci můžete autorizovat, Put Block
jak je popsáno níže.
Důležité
Microsoft doporučuje používat Microsoft Entra ID se spravovanými identitami k autorizaci požadavků na Azure Storage. Microsoft Entra ID poskytuje lepší zabezpečení a snadné použití v porovnání s autorizací sdíleného klíče.
Azure Storage podporuje použití Microsoft Entra ID k autorizaci požadavků na data objektů blob. 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í je ověřen id Microsoft Entra, aby se 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í Id Microsoft Entra najdete v tématu Autorizace přístupu k objektům blob pomocí ID Microsoft Entra.
Oprávnění
Níže jsou uvedené akce RBAC nezbytné pro volání Put Block
operace uživatelem, skupinou, spravovanou identitou nebo instančním objektem Microsoft Entra a předdefinovanou rolí Azure RBAC s nejnižšími oprávněními, která zahrnuje tuto akci:
- Akce Azure RBAC:Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write
- Nejméně privilegovaná předdefinovaná role:Přispěvatel dat v objektech blob služby Storage
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.
Poznámky
Put Block
nahraje blok pro budoucí zahrnutí do objektu blob bloku. Každý blok v objektu blob bloku může mít jinou velikost. Objekt blob bloku může obsahovat maximálně 50 000 potvrzených bloků.
Následující tabulka popisuje maximální povolené velikosti bloků a objektů blob podle verze služby:
Verze služby | Maximální velikost bloku (přes Put Block ) |
Maximální velikost objektu blob (přes Put Block List ) |
Maximální velikost objektu blob prostřednictvím jedné operace zápisu (přes Put Blob ) |
---|---|---|---|
Verze 2019-12-12 a novější | 4 000 MiB | Přibližně 190,7 tebibajtů (TiB) (4 000 MiB × 50 000 bloků) | 5 000 MiB |
Verze 2016-05-31 až 2019-07-07-07 | 100 MiB | Přibližně 4,75 TiB (100 MiB × 50 000 bloků) | 256 MiB |
Verze starší než 31. 5. 2016 | 4 MiB | Přibližně 195 gibibajtů (GiB) (4 MiB × 50 000 bloků) | 64 MiB |
Maximální počet nepotvrzených bloků, které mohou být přidružené k objektu blob, je 100 000. Pokud je toto číslo překročeno, vrátí služba stavový kód 409 (RequestEntityTooLargeBlockCountExceedsLimit).
Po nahrání sady bloků můžete vytvořit nebo aktualizovat objekt blob na serveru z této sady voláním operace Vložit seznam bloků . Každý blok v sadě je identifikován ID bloku, které je v rámci objektu blob jedinečné. ID bloků jsou vymezená na konkrétní objekt blob, takže různé objekty blob můžou mít bloky se stejnými ID.
Pokud zavoláte Put Block
objekt blob, který ještě neexistuje, vytvoří se nový objekt blob bloku s délkou obsahu 0. Pokud je zadaná možnost, operace tento objekt blob vyčíslí List Blobs
include=uncommittedblobs
. Blok nebo bloky, které nahrajete, nebudou potvrzeny, dokud nezavoláte Put Block List
nový objekt blob. Objekt blob vytvořený tímto způsobem se na serveru udržuje po dobu jednoho týdne. Pokud jste do objektu blob v daném časovém období nepřidali další bloky nebo potvrzené bloky, bude objekt blob uvolněn z paměti.
Blok, který se úspěšně nahrál s Put Block
operací, se nestane součástí objektu blob, dokud se nepřijme pomocí Put Block List
příkazu . Před Put Block List
voláním k potvrzení nového nebo aktualizovaného objektu blob vrátí všechna volání funkce Get Blob obsah objektu blob bez zahrnutí nepotvrzeného bloku.
Pokud nahrajete blok, který má stejné ID bloku jako jiný blok, který ještě nebyl potvrzen, poslední nahraný blok s tímto ID se potvrdí při další úspěšné Put Block List
operaci.
Po Put Block List
zavolání se všechny nepotvrzené bloky zadané v seznamu bloků potvrdí jako součást nového objektu blob. Všechny nepotvrzené bloky, které nebyly zadané v seznamu blokovaných objektů blob, se shromáždí a odeberou ze služby Blob Storage. Všechny nepotvrzené bloky se také ukládají do paměti, pokud během týdne po poslední úspěšné Put Block
operaci nedojde k Put Block
úspěšnému volání nebo Put Block List
ke stejnému objektu blob. Pokud se v objektu blob volá příkaz Put Blob , všechny nepotvrzené bloky se vygenerují z paměti.
Pokud má objekt blob aktivní zapůjčení, musí klient zadat platné ID zapůjčení v požadavku na zápis bloku do objektu blob. Pokud klient nezadá ID zapůjčení nebo zadá neplatné ID zapůjčení, vrátí Blob Storage stavový kód 412 (Předběžná podmínka se nezdařila). Pokud klient zadá ID zapůjčení, ale objekt blob nemá aktivní zapůjčení, vrátí blob Storage také stavový kód 412 (Předběžná podmínka se nezdařila).
U zadaného objektu blob musí mít všechna ID bloků stejnou délku. Pokud je blok nahrán s ID bloku jiné délky než ID bloku pro všechny existující nepotvrzené bloky, vrátí služba kód odpovědi na chybu 400 (Chybný požadavek).
Pokud se pokusíte nahrát blok větší než 4 000 MiB pro verzi 2019-12-12-12 nebo novější, větší než 100 MiB pro verzi 2016-05-31 nebo novější nebo větší než 4 MiB pro starší verze, vrátí služba stavový kód 413 (příliš velká entita požadavku). Služba také vrátí další informace o chybě v odpovědi, včetně maximální povolené velikosti bloku, v bajtech.
Volání Put Block
neaktualizuje čas poslední změny existujícího objektu blob.
Volání Put Block
na objektu blob stránky vrátí chybu.
Volání Put Block
archivovaného objektu blob vrátí chybu a při volání na objektu hot
blob nebo cool
se úroveň objektů blob nezmění.
Fakturace
Žádosti o ceny můžou pocházet od klientů, kteří používají rozhraní BLOB Storage API, a to buď přímo prostřednictvím rozhraní REST API služby Blob Storage, nebo z klientské knihovny Služby Azure Storage. Tyto požadavky načítají poplatky za transakci. Typ transakce ovlivňuje způsob účtování poplatku za účet. Například transakce čtení se načítají do jiné kategorie fakturace než transakce zápisu. Následující tabulka ukazuje kategorii fakturace pro Put Block
žádosti založené na typu účtu úložiště:
Operace | Typ účtu úložiště | Kategorie fakturace |
---|---|---|
Vložit blok | Objekt blob bloku úrovně Premium Standard pro obecné účely v2 Standard pro obecné účely v1 |
Operace zápisu1 |
1Put Block
operace zapisuje bloky do dočasného úložiště pomocí výchozí úrovně přístupu účtu úložiště. Pokud například nahráváte objekt blob do archivní vrstvy, všechny Put Block
operace, které jsou součástí nahrávání, se účtují jako operace zápisu na základě výchozí úrovně přístupu účtu úložiště, nikoli cílové vrstvy.
Put Block List
Operace a Put Blob
se ale účtují jako operace zápisu na základě cílové vrstvy objektu blob.
Informace o cenách pro zadanou kategorii fakturace najdete v tématu Ceny služby Azure Blob Storage.
Viz také
Autorizace žádostí do Služby Azure Storage
Stavové kódy a kódy chyb
Kódy chyb služby Blob Service
Nastavení časových limitů pro operace služby Blob Service