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 Append Block potvrdí nový blok dat na konec existujícího append blobu.
Operace Append Block je povolena pouze tehdy, pokud byl blob vytvořen s x-ms-blob-type nastavením na AppendBlob.
Append Block je podporován pouze ve verzi 2015-02-21 nebo novější.
Žádost
Požadavek Append Block můžete vytvořit následujícím způsobem. Doporučuje se HTTPS. Nahraďte myaccount názvem vašeho účtu úložiště.
| PUT požadavek na URI metody | Verze protokolu HTTP |
|---|---|
https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=appendblock |
Protokol HTTP/1.1 |
Když zadáváte požadavek na emulovanou storage službu, zadejte hostitelské jméno emulátoru a port Azure Blob Storage jako 127.0.0.1:10000, 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=appendblock |
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 |
|---|---|
timeout |
Optional. Parametr timeout je vyjádřen v sekundách. Pro více informací viz Nastavení časových limitů pro operace Azure Blob Storage. |
Hlavičky žádosti
Následující tabulka popisuje povinné a volitelné hlavičky požadavků.
| 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. Další informace najdete v tématu Správa verzí pro služby Azure Storage. |
Content-Length |
Povinné. Délka obsahu bloku v bajtech. Velikost bloku musí být menší nebo rovna 100 MiB (náhled) pro verzi 2022-11-02 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. Všimněte si, že 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 připojeného bloku. Tento hash se používá k ověření integrity připojeného 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. Všimněte si, že tento hash CRC64 není uložen s blobem. Pokud se oba hashe neshodují, operace selže s chybovým kódem 400 (Špatný požadavek). Pokud jsou přítomny oba Content-MD5 a hlavičky x-ms-content-crc64 , požadavek selže s chybovým kódem 400.Tato hlavička je podporována ve verzích 2019-02-02 nebo 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 nebo 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. |
x-ms-blob-condition-maxsize |
Volitelná podmíněná hlavička. Specifikuje maximální délku povolenou délku v bajtech pro připojený blob. Pokud operace způsobí Append Block , že blob překročí tento limit, nebo pokud je velikost blobu již větší než hodnota uvedená v této hlavičce, požadavek selže s chybovým kódem 412 (Precondition Failed). |
x-ms-blob-condition-appendpos |
Volitelná podmíněná hlavička, používaná pouze pro Append Block operaci. Číslo označuje posun bajtu pro porovnání.
Append Block uspěje pouze tehdy, pokud je pozice připojeného čísla rovna tomuto číslu. Pokud ne, požadavek selže s chybovým kódem 412 (Precondition Failed). |
Tato operace podporuje použití dalších podmíněných hlaviček, aby bylo zajištěno, že API uspěje pouze tehdy, pokud je splněna zadaná podmínka. Pro více informací viz Specifikace podmíněných hlaviček pro operace Azure Blob Storage.
Záhlaví požadavků (šifrovací klíče poskytované zákazníkem)
Od verze 2019-02-02 můžete na požadavku na zašifrování blobu pomocí zákaznického klíče specifikovat 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 | 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. |
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=appendblock HTTP/1.1
Request Headers:
x-ms-version: 2015-02-21
x-ms-date: <date>
x-ms-blob-condition-appendpos: 2097152
x-ms-blob-condition-maxsize: 4194304
Authorization: SharedKey myaccount:J4ma1VuFnlJ7yfk/Gu1GxzbfdJloYmBPWlfhZ/xn7GI=
Content-Length: 1048
If-Match: "0x8CB172A360EC34B"
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 tématu Stav a kódy chyb.
Hlavičky odpovědi
Odpověď na tuto operaci obsahuje následující hlavičky. Odpověď může obsahovat i další standardní hlavičky HTTP. Všechny standardní hlavičky odpovídají specifikaci protokolu HTTP/1.1.
| Hlavička odpovědi | Description |
|---|---|
ETag |
Obsahuje ETag hodnotu v uvozovkách. Klient může tuto hodnotu použít k provádění podmíněných PUT operací pomocí hlavičky If-Match požadavku. |
Last-Modified |
Datum a čas, kdy byla hmota naposledy upravena. Formát data se řídí dokumentem RFC 1123. Pro více informací viz Reprezentace hodnot data a času v hlavičkách. Jakákoli zápisová operace na blob (včetně aktualizací metadat nebo vlastností blobu) mění čas poslední úpravy blobu. |
Content-MD5 |
Tato hlavička se vrátí, aby klient mohl zkontrolovat integritu obsahu zprávy. Hodnota této hlavičky je vypočítána pomocí Blob Storage. Nemusí to být nutně stejná hodnota uvedená v hlavičkách požadavků. U verzí 2019-02-02 nebo 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 nebo nově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. Nemusí to být nutně stejná hodnota uvedená v hlavičkách požadavků. Tato hlavička se vrací, když hlavička Content-md5 není v požadavku přítomna. |
x-ms-request-id |
Tato hlavička jednoznačně identifikuje požadavek, který byl proveden, a lze ho použít k řešení potíží s požadavkem. |
x-ms-version |
Označuje verzi služby Blob Storage použitou ke spuštění požadavku. Tato hlavička se vrací pro požadavky odeslané ve verzi 2009-09-19 a novější. |
Date |
Hodnota data a času UTC, která označuje čas, kdy byla odpověď zahájena. Služba vygeneruje tuto hodnotu. |
x-ms-blob-append-offset |
Tato hlavička odpovědi se vrátí pouze pro operace připojení. Vrátí posun, při kterém byl blok potvrzen v bajtech. |
x-ms-blob-committed-block-count |
Počet potvrzených bloků, které jsou přítomné v objektu blob. Můžete to použít k kontrole, kolik dalších připojení lze provést. |
x-ms-request-server-encrypted: true/false |
Verze 2015-12-11 nebo později. 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 nebo později. Tato hlavička se vrátí, pokud požadavek použil zákaznický klíč pro šifrování. Klient pak může zajistit, že obsah požadavku je úspěšně zašifrován pomocí poskytnutého klíče. |
x-ms-encryption-scope |
Verze 2019-02-02 nebo později. Tato hlavička se vrátí, pokud požadavek použil šifrovací rozsah. Klient pak může zajistit, že obsah požadavku je úspěšně zašifrován pomocí šifrovacího rozsahu. |
x-ms-client-request-id |
Tato hlavička slouží k řešení potíží s požadavky a odpovídajícími odpověďmi. Hodnota této hlavičky je rovna hodnotě x-ms-client-request-id hlavičky, pokud je přítomna v požadavku. Hodnota je maximálně 1024 viditelných znaků ASCII. Pokud x-ms-client-request-id hlavička není v požadavku přítomna, není v odpovědi přítomna. |
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: <date>
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0
x-ms-blob-append-offset: 2097152
x-ms-blob-committed–block-count: 1000
Authorization
Autorizace se vyžaduje při volání jakékoli operace přístupu k datům ve službě Azure Storage. Operaci Append 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 Append Block a nejméně privilegované předdefinované role Azure RBAC, která zahrnuje tuto akci:
- Azure RBAC action:Microsoft.Storage/storageAccounts/blobServices/containers/blobs/add/action nebo 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
Append Block nahraje blok na konec existujícího append blobu. Blok dat je okamžitě dostupný po úspěchu hovoru na serveru. Pro každou připojenou skupinu je povoleno maximálně 50 000 příloh. Každý blok může mít jinou velikost.
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 Append Block) |
Maximální velikost blobu |
|---|---|---|
| Verze 2022-11-02 a později | 100 MiB (Náhled) | Přibližně 4,75 TiB (100 MiB × 50 000 bloků) |
| Verze starší než 2022-11-02 | 4 MiB | Přibližně 195 gibibajtů (GiB) (4 MiB × 50 000 bloků) |
Append Block uspěje pouze tehdy, pokud už blob existuje.
Bloby nahrané pomocí neodhalují Append Block ID bloků. Nemůžeš volat Get Block List proti připojenému blobu. To vede k chybě.
Na požadavku můžete zadat následující volitelné, podmíněné hlavičky:
x-ms-blob-condition-appendpos: Můžete nastavit tuto hlavičku na bajtový offset, na který klient očekává připojení bloku. Požadavek je úspěšný pouze tehdy, pokud aktuální offset odpovídá tomu, co specifikuje klient. Jinak požadavek selže s chybovým kódem 412 (Precondition Failed).Klienti, kteří používají jeden zapisovač, mohou tuto hlavičku použít k určení, zda operace byla úspěšná
Append Block, i přes selhání sítě.x-ms-blob-condition-maxsize: Klienti mohou použít tuto hlavičku k zajištění, že operace připojování nezvyšují velikost blobu nad očekávanou maximální velikost v bajtech. Pokud podmínka selže, požadavek selže s chybovým kódem 412 (Předpodmínka selhala).
Pokud se pokusíte nahrát blok větší než povolená velikost, služba vrátí chybový 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. Pokud se pokusíte nahrát více než 50 000 bloků, služba vrátí chybový kód 409 (Konflikt).
Pokud má blob aktivní nájem, klient musí na požadavek zadat platné ID pronájmu, aby mohl zapsat blok do blobu. Pokud klient nespecifikuje ID pronájmu nebo neplatné ID pronájmu, Blob Storage vrátí chybový kód 412 (Předpodmínka selhala). Pokud klient zadá ID pronájmu, ale blob nemá aktivní pronájem, Blob Storage také vrátí chybový kód 412.
Pokud zavoláte Append Block na existující blokový blob nebo page blob, služba vrátí chybu konfliktu. Pokud voláte Append Block na neexistující blob, služba také vrátí chybu.
Vyhněte se duplicitním nebo zpožděným přílohám
V případě jednoho zapisovače může klient vyhnout duplicitním připojovacím nebo zpožděným zápisům použitím *x-ms-blob-condition-appendpos podmíněné hlavičky ke kontrole aktuálního offsetu. Klient se může také vyhnout duplikátům nebo zpožděním tím, If-Matchže podmíněně zkontroluje .ETag
V případě více zapisovačů může každý klient použít podmíněné hlavičky, ale to nemusí být optimální pro výkon. Pro nejvyšší průchodnost souběžných připojení by aplikace měly zpracovávat redundantní a zpožděné připojení v aplikační vrstvě. Například aplikace může do připojivaných dat přidávat epochy nebo pořadová čísla.
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 Append Block požadavky na základě typu účtu úložiště:
| Operation | Typ účtu úložiště | Kategorie fakturace |
|---|---|---|
| Připojit blok | Objekt blob bloku Premium Standard pro obecné účely verze 2 Standard pro obecné účely verze 1 |
Operace zápisu |
Append Blocks nepodporují tiering na úrovni objektů, ale odvozují svou přístupovou úroveň z výchozího nastavení úrovně přístupu k účtu a jsou podle toho fakturovány. Pro více informací o výchozím nastavení úrovně účtu viz Přístupové úrovně pro data blobov – Azure Storage.
Další informace o cenách pro zadanou kategorii fakturace najdete v tématu Ceny služby Azure Blob Storage.