Sdílet prostřednictvím


Připojit blok

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:

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.