Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Operace Put Block vytvoří nový blok, který se zavádí jako součást blobu.
Žádost
Požadavek Put Block můžete vytvořit následujícím způsobem. Doporučujeme používat PROTOKOL HTTPS. Nahraďte myaccount názvem vašeho úložného účtu:
| PUT požadavek na URI metody | Verze protokolu HTTP |
|---|---|
https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=block&blockid=id |
Protokol HTTP/1.1 |
Žádost o emulovanou službu úložiště
Když zadáváte požadavek na emulovanou úložnou službu, zadejte hostitelské jméno emulátoru a port 127.0.0.1:10000Blob jako , následované názvem emulovaného úložného účtu:
| PUT požadavek na URI metody | Verze protokolu HTTP |
|---|---|
http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob?comp=block&blockid=id |
Protokol HTTP/1.1 |
Další informace najdete v tématu Použití emulátoru Azurite pro místní vývoj ve službě Azure Storage.
Parametry identifikátoru URI
| Parameter | Description |
|---|---|
blockid |
Povinné. Platná řetězcová hodnota Base64, která identifikuje blok. Před zakódováním musí být řetězec menší nebo roven velikosti 64 bajtů. Pro zadaný blob musí být délka hodnoty parametru blockid stejná velikost pro každý blok.Poznámka: String Base64 musí být kódován v URL. |
timeout |
Optional. Parametr timeout je vyjádřen v sekundách. Pro více informací viz Nastavte časové limity pro operace služby Blob. |
Hlavičky žádosti
Povinná a volitelná hlavička požadavku jsou popsána v následující tabulce:
| Hlavička požadavku | Description |
|---|---|
Authorization |
Povinné. Určuje schéma autorizace, název účtu a podpis. Více informací naleznete v článku Authorize requests to Azure Storage . |
Date nebo x-ms-date |
Povinné. Určuje standard UTC (Coordinated Universal Time) pro požadavek. Další informace najdete v tématu Autorizace požadavků na službu Azure Storage. |
x-ms-version |
Vyžadováno pro všechny autorizované požadavky. Určuje verzi operace, která se má pro tento požadavek použít. Pro více informací viz Verze pro Azure Storage Services. |
Content-Length |
Povinné. Délka obsahu bloku v bajtech. Blok musí být menší nebo roven velikosti 4 000 mebibajtů (MiB) pro verzi 2019-12-12 a později. Viz sekce Poznámky pro limity ve starších verzích. Pokud délka není uvedena, operace selže se stavovým kódem 411 (Požadovaná délka). |
Content-MD5 |
Optional. MD5 hash obsahu bloku. Tento hash se používá k ověření integrity bloku během transportu. Když je tato hlavička specifikována, služba úložiště porovná hash obsahu, který dorazil s touto hodnotou hlavičky. Poznámka: Tento MD5 hash není uložen s blobem. Pokud se oba hashe neshodují, operace selže s chybovým kódem 400 (Špatný požadavek). |
x-ms-content-crc64 |
Optional. CRC64 hash obsahu bloku. Tento hash se používá k ověření integrity bloku během transportu. Když je tato hlavička specifikována, služba úložiště porovná hash obsahu, který dorazil s touto hodnotou hlavičky. Poznámka: Tento hash CRC64 není uložen s blobem. Pokud se dvě hodnoty hash neshoduje, operace selže s kódem chyby 400 (Chybný požadavek). Pokud jsou přítomny hlavičky Content-MD5 a x-ms-content-crc64, požadavek selže s 400 (Špatný požadavek). Tato hlavička je podporována ve verzích 2019-02-02 a novějších. |
x-ms-encryption-scope |
Optional. Označuje obor šifrování, který se má použít k šifrování obsahu požadavku. Tato hlavička je podporována ve verzích 2019-02-02 a novějších. |
x-ms-lease-id:<ID> |
Je vyžadováno, pokud má objekt blob aktivní pronájem. Chcete-li 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 |
Optional. Poskytuje klientem generovanou, neprůhlednou hodnotu s limitem znaků 1 kibibajt (KiB), který se zaznamenává do protokolů 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. |
Záhlaví požadavků (šifrovací klíče poskytované zákazníkem)
Od verze 2019-02-02 mohou být následující hlavičky uvedeny v požadavku na šifrování blobu pomocí zákaznického klíče. Šifrování pomocí klíče poskytnutého zákazníkem (a odpovídající sady hlaviček) je volitelné.
| Hlavička požadavku | Description |
|---|---|
x-ms-encryption-key |
Povinné. Šifrovací klíč AES-256 kódovaný v Base64. |
x-ms-encryption-key-sha256 |
Povinné. Hash SHA256 kódovaný v Base64 kódování šifrovacího klíče. |
x-ms-encryption-algorithm: AES256 |
Povinné. Specifikuje algoritmus pro šifrování. Hodnota této hlavičky musí být AES256. |
Záhlaví požadavků (strukturované tělo)
Od verze 2025-01-05 mohou být v požadavku uvedeny následující hlavičky pro využití strukturovaného tělního formátu.
| Hlavička požadavku | Description |
|---|---|
Content-Length |
Povinné. Musí být délka zakódovaného požadavku (nejen délka obsahu bloku). Pokud hodnota hlavičky neodpovídá očekávané délce kódovaného požadavku, operace selže s chybovým kódem 400 (Špatný požadavek). |
x-ms-structured-body |
Povinné. Musí být zahrnut, pokud je formát zprávy strukturovaný. Hodnota této hlavičky obsahuje verzi a vlastnosti schématu zpráv. V současnosti je podporovanou XSM/1.0; properties=crc64pouze hodnotou , což znamená, že požadavek používá kontrolní součet crc64 segmentů v zakódované zprávě. Pokud hodnota neodpovídá, operace selže s chybovým kódem 400 (Špatný požadavek). Požadavek také selže, pokud obsah uvedený v požadavku neodpovídá zadanému kontrolnímu součtu pro daný segment s chybovým kódem 400 (Špatný požadavek). |
x-ms-structured-content-length |
Povinné. Musí být zahrnut, pokud je formát zprávy strukturovaný. Hodnota této hlavičky je délka obsahu bloku a vždy bude menší než Content-Length hodnota hlavičky kvůli kódování zpráv. Pokud hodnota hlavičky neodpovídá délce obsahu bloku uvedeného v požadavku, operace selže s chybovým kódem 400 (Špatný požadavek). |
Obsah požadavku
Tělo požadavků 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
Odezva
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 naleznete v části Stavové a chybové kódy.
Hlavičky odpovědi
Odpověď na tuto operaci obsahuje následující hlavičky. Odpověď může obsahovat také 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áv. Hodnota této hlavičky je vypočítána pomocí Blob Storage a nemusí být nutně stejná jako v hlavičkách požadavků. U verzí 2019-02-02 a novějších se tato hlavička vrací pouze tehdy, když požadavek tuto hlavičku obsahuje. |
x-ms-content-crc64 |
U verzí 2019-02-02 a pozdějších se tato hlavička vrací, aby klient mohl zkontrolovat integritu obsahu zprávy. Hodnota této hlavičky je vypočítána pomocí Blob Storage a nemusí být nutně stejná jako v hlavičkách požadavků. Tato hlavička se vrací, když Content-md5 hlavička není v požadavku přítomna. |
x-ms-request-id |
Jednoznač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 Blob Storage, která byla použita k vykonání požadavku. Tato hlavička se vrací pro požadavky provedené proti verzi 2009-09-19 nebo novější. |
Date |
UTC data/čas generovaná službou a která ukazuje, kdy byla odpověď zahájena. |
x-ms-request-server-encrypted: true/false |
Verze 2015-12-11 a pozdější. Hodnota této hlavičky je nastavena na , true pokud je obsah požadavku úspěšně zašifrován pomocí zadaného algoritmu. Jinak je hodnota nastavena na false. |
x-ms-encryption-key-sha256 |
Verze 2019-02-02 a dále. Tato hlavička se vrátí, pokud požadavek použil zákaznický klíč pro šifrování, aby klient mohl zajistit, že obsah požadavku je úspěšně zašifrován pomocí poskytnutého klíče. |
x-ms-encryption-scope |
Verze 2019-02-02 a dále. Tato hlavička se vrátí, pokud požadavek použil šifrovací rozsah, aby klient mohl zajistit, že obsah požadavku je úspěšně zašifrován pomocí šifrovacího rozsahu. |
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ě hlavičky x-ms-client-request-id, pokud se nachází v požadavku a hodnota neobsahuje více než 1 024 viditelných znaků ASCII. Pokud v požadavku není hlavička x-ms-client-request-id, není v odpovědi k dispozici. |
x-ms-structured-body |
Vráceno, pokud byl požadavek zpracován jako strukturovaný tělesný požadavek. Hodnota této hlavičky je rovna hodnotě zaslané v požadavku, která musí být XSM/1.0; properties=crc64aktuálně . |
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
Authorization
Autorizace se vyžaduje při volání jakékoli operace přístupu k datům ve službě Azure Storage. Operaci Put Block můžete autorizovat, 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ů do služby Azure Storage. Microsoft Entra ID poskytuje vynikající 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 přístupů k datům objektů blob. S ID Microsoft Entra můžete pomocí řízení přístupu na základě role v Azure (Azure RBAC) udělit oprávnění k objektu zabezpečení. Objekt zabezpečení může být uživatel, skupina, instanční objekt aplikace nebo spravovaná identita Azure. Instanční objekt zabezpečení je ověřený pomocí ID Microsoft Entra pro vrácení tokenu OAuth 2.0. Token se pak dá použít k autorizaci požadavku ve službě Blob Service.
Další informace o autorizaci pomocí ID Microsoft Entra najdete v tématu Autorizace přístupu k objektům blob pomocíMicrosoft Entra ID .
Povolení
Níže je uvedena akce RBAC potřebná pro uživatele, skupinu, spravovanou identitu nebo instanční objekt Microsoftu pro volání operace Put Block a nejméně privilegované předdefinované role Azure RBAC, která zahrnuje tuto akci:
- Azure RBAC action:Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write
- Předdefinovaná role s nejnižšími oprávněními: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í zařazení do blokového blobu. Každý blok v bloku může mít jinou velikost. Bloková blob může obsahovat maximálně 50 000 zavázaných bloků.
Následující tabulka popisuje maximální povolené velikosti bloků a blobů podle verzí služby:
| Verze služby | Maximální velikost bloku (přes Put Block) |
Maximální velikost blobu (přes Put Block List) |
Maximální velikost blobu pomocí operace jednoho 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 | 100 MiB | Přibližně 4,75 TiB (100 MiB × 50 000 bloků) | 256 MiB |
| Verze před 31. květnem 2016 | 4 MiB | Přibližně 195 gibibajtů (GiB) (4 MiB × 50 000 bloků) | 64 MiB |
Maximální počet nezávazných bloků, které mohou být spojeny s blobem, je 100 000. Pokud je toto číslo překročeno, služba vrátí stavový kód 409 (RequestEntityTooLargeBlockCountExceedsLimit).
Po nahrání sady bloků můžete vytvořit nebo aktualizovat blob na serveru z této sady voláním operace Put Block List . Každý blok v sadě je identifikován ID bloku, které je v rámci daného blobu jedinečné. ID bloků jsou zaměřena na konkrétní blob, takže různé bloby mohou mít bloky se stejnými ID.
Pokud vyvoláte Put Block blob, který ještě neexistuje, vytvoří se nový blokový blob s obsahovou délkou 0. Tento blob je vyčíslován operací, List Blobs pokud je tato include=uncommittedblobs možnost specifikována. Bloky nebo bloky, které nahraješ, nejsou zavázané, dokud nezavoláš Put Block List nový blob. Blob vytvořený tímto způsobem je na serveru udržován týden. Pokud jste během té doby nepřidali další bloky nebo nezavázali bloky do blobu, blob je garbage collected.
Blok, který byl úspěšně nahrán pomocí Put Block operace, se nestane součástí blobu, dokud není commitován s Put Block List. Před tím, než Put Block List je volán k commitu nového nebo aktualizovaného blobu, jakákoli volání Get Blob vrátí obsah blobu bez zahrnutí nezávazného bloku.
Pokud nahrajete blok, který má stejné ID bloku jako jiný blok, který ještě nebyl zavázán, poslední nahraný blok s tímto ID bude potvrzen při další úspěšné Put Block List operaci.
Po Put Block List vyvolání jsou všechny nezávazné bloky specifikované v seznamu bloků zavázány jako součást nového blobu. Jakékoliv nezávazné bloky, které nebyly specifikovány v seznamu bloků pro blob, jsou odstraňovány a odstraněny z Blob Storage. Jakékoliv neuzavřené bloky jsou také odsouzeny do garbage collect, pokud do týdne po poslední úspěšné Put Block operaci neproběhnou žádné úspěšné volání na Put Block List stejné blob nebo Put Block na něm. Pokud je na blobu vyvolán Put Blob , všechny neoddané bloky jsou garbage collected.
Pokud má blob aktivní nájem, klient musí při žádosti o zápis bloku do blobu zadat platné ID nájemní smlouvy. Pokud klient nespecifikuje ID pronájmu nebo specifikuje neplatné ID pronájmu, Blob Storage vrací stavový kód 412 (Předpodmínka selhala). Pokud klient zadá ID leasingu, ale blob nemá aktivní nájem, Blob Storage také vrátí stavový kód 412 (Precondition Failed).
Pro zadaný blob musí být všechna ID bloků stejně dlouhá. Pokud je blok nahrán s ID bloku jiné délky než ID bloků pro jakékoli existující nezávazné bloky, služba vrátí kód chybové odpovědi 400 (Špatný požadavek).
Pokud se pokusíte nahrát blok větší než 4 000 MiB pro verzi 2019-12-12 nebo později, větší než 100 MiB pro verzi 2016-05-31 nebo novější, nebo větší než 4 MiB pro starší verze, služba vrátí stavový kód 413 (Request Entity Too Large). Služba také vrací další informace o chybě v odpovědi, včetně maximální povolené velikosti bloku, v bajtech.
Volání Put Block neaktualizuje poslední upravený čas existujícího blobu.
Volání Put Block na stránkový blob vrátí chybu.
Volání Put Block From URL blobu nemění úroveň blob, ale volání archive blob vrátí chybu.
Fakturování
Požadavky na stanovení cen mohou 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 Azure Storage. Za tyto žádosti se účtují poplatky za transakci. Typ transakce má vliv na způsob účtování poplatků. Například transakce čtení narůstají do jiné fakturační kategorie než transakce zápisu. Následující tabulka uvádí kategorii fakturace pro Put Block požadavky na základě typu účtu úložiště:
| Operation | Typ účtu úložiště | Kategorie fakturace |
|---|---|---|
| Vložit blok | Objekt blob bloku Premium Standard pro obecné účely verze 2 Standard pro obecné účely verze 1 |
Zápisové operace1 |
Operace 1Put Block zapisují bloky do dočasného úložiště pomocí výchozí přístupové úrovně úložného účtu. Například pokud nahráváte blob do archivní úrovně, všechny Put Block operace, které jsou součástí nahrávání, jsou účtovány jako zápisové operace založené na výchozí úrovni přístupu úložiště, nikoli na cílové úrovni.
Put Block List a Put Blob operace jsou však účtovány jako zápisové operace založené na cílové úrovni blobu.
Další informace o cenách pro zadanou kategorii fakturace najdete v tématu Ceny služby Azure Blob Storage.
Viz také
Autorizace požadavků na Azure Storage
Kódy stavu a chyb
Chybové kódy blob služeb
Nastavte časové limity pro provoz služby Blob