Sdílet prostřednictvím


Připojit blok z adresy URL

Operace Append Block From URL potvrdí nový blok dat na konec existujícího doplňovacího objektu blob.

Operace Append Block From URL je povolená pouze v případě, že byl objekt blob vytvořen s x-ms-blob-type nastavenou na AppendBlobhodnotu . Append Block From URL je podporován pouze ve verzi 2018-11-09 nebo novější.

Žádost

Požadavek můžete sestavit Append Block From URL následujícím způsobem. Doporučuje se 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=appendblock HTTP/1.1

Když vytváříte požadavek na službu emulovaného úložiště, zadejte název hostitele emulátoru a port Azure Blob Storage jako 127.0.0.1:10000a 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=appendblock HTTP/1.1

Další informace najdete v tématu Použití emulátoru Azurite pro vývoj v místním úložišti Azure Storage.

Parametry identifikátoru URI

Parametr Popis
timeout Nepovinný parametr. Parametr časového limitu se vyjadřuje v sekundách. Další informace najdete v tématu Nastavení časových limitů pro operace služby Blob Storage.

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 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 Vyžaduje se pro všechny autorizované žádosti. 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á hodnota. Určuje počet bajtů přenášených v textu požadavku. Hodnota této hlavičky musí být nastavena na nulu. Pokud délka není nulová, operace selže s kódem chyby 400 (Chybný požadavek).
x-ms-copy-source:name Povinná hodnota. Určuje adresu URL zdrojového objektu blob. Hodnotou může být adresa URL o délce až 2 KiB, která určuje objekt blob. Hodnota by měla být zakódovaná jako adresa URL, jak by se zobrazila v identifikátoru URI požadavku. Zdrojový objekt blob musí být buď veřejný, nebo musí být autorizovaný prostřednictvím sdíleného přístupového podpisu. Pokud je zdrojový objekt blob veřejný, nevyžaduje se k provedení operace žádná autorizace. Tady je několik příkladů adres URL zdrojových objektů:

https://myaccount.blob.core.windows.net/mycontainer/myblob
https://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot=<DateTime>
https://myaccount.blob.core.windows.net/mycontainer/myblob?versionid=<DateTime>
x-ms-copy-source-authorization: <scheme> <signature> Nepovinný parametr. Určuje schéma autorizace a podpis pro zdroj kopírování. Další informace najdete v tématu Autorizace požadavků do služby Azure Storage.
Pro Microsoft Entra ID je podporován pouze nosný systém.
Tato hlavička je podporovaná ve verzi 2020-10-02 a novějších.
x-ms-source-range Nepovinný parametr. Nahraje jenom bajty objektu blob ve zdrojové adrese URL v zadaném rozsahu. Pokud není zadaný, celý obsah zdrojového objektu blob se nahraje jako jeden přidávací blok. Další informace najdete v tématu Zadání hlavičky rozsahu pro operace služby Blob Storage .
x-ms-source-content-md5 Nepovinný parametr. Hodnota hash MD5 obsahu bloku připojení z identifikátoru URI. Tato hodnota hash se používá k ověření integrity bloku připojení během přenosu dat z identifikátoru URI. Když zadáte tuto hlavičku, služba úložiště porovná hodnotu hash obsahu, který přišel z copy-source, s touto hodnotou hlavičky.

Všimněte si, že tato hodnota hash MD5 se neukládá s objektem blob.

Pokud se tyto dvě hodnoty hash neshodí, operace selže s kódem chyby 400 (Chybný požadavek).
x-ms-source-content-crc64 Nepovinný parametr. Hodnota hash CRC64 obsahu bloku připojení z identifikátoru URI. Tato hodnota hash se používá k ověření integrity bloku připojení během přenosu dat z identifikátoru URI. Když zadáte tuto hlavičku, služba úložiště porovná hodnotu hash obsahu, který přišel z copy-source, s touto hodnotou hlavičky.

Všimněte si, že tato hodnota hash CRC64 se neukládá s objektem blob.

Pokud se tyto dvě hodnoty hash neshodí, operace selže s kódem chyby 400 (Chybný požadavek).

Pokud jsou k dispozici hlavičky i x-ms-source-content-md5x-ms-source-content-crc64 , požadavek selže s chybou 400 (Chybný požadavek).

Tato hlavička je podporovaná ve verzi 2019-02-02 nebo novější.
x-ms-encryption-scope Nepovinný parametr. Určuje obor šifrování, který se má použít k šifrování zdrojového obsahu. Tato hlavička je podporovaná ve verzi 2019-02-02 nebo novější.
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í této hlavičky.
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.
x-ms-blob-condition-maxsize Volitelná podmíněná hlavička. Maximální délka v bajtech povolená pro doplňovací objekt blob. Append Block From URL Pokud operace způsobí, že objekt blob překročí tento limit nebo pokud je velikost objektu blob již větší než hodnota zadaná v této hlavičce, požadavek selže s chybou 412 (Předběžná podmínka selhala).
x-ms-blob-condition-appendpos Volitelná podmíněná hlavička, která se používá pouze pro operaci Append Block from URL . Číslo označující posun bajtů, který se má porovnat. Append Block from URL úspěch pouze v případě, že pozice připojení je rovna tomuto číslu. Pokud není, požadavek selže s chybou 412 (Předběžná podmínka selhala).

Tato operace podporuje použití dalších podmíněných hlaviček, aby se zajistilo, že rozhraní API bude úspěšné pouze v případě, že je splněna zadaná podmínka. Další informace najdete v tématu Určení podmíněných hlaviček pro operace služby Blob Storage.

Hlavičky požadavku (šifrovací klíče poskytnuté zákazníkem)

Od verze 2019-02-02 můžete 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 s kódováním Base64 šifrovacího klíče.
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=appendblock  HTTP/1.1  

Request Headers:  
x-ms-version: 2018-11-09  
x-ms-date: <date>  
x-ms-copy-source: https://myaccount.blob.core.windows.net/mycontainer/myblob
x-ms-source-range: bytes=0-65535
x-ms-blob-condition-appendpos: 2097152  
x-ms-blob-condition-maxsize: 4194304  
Authorization: SharedKey myaccount:J4ma1VuFnlJ7yfk/Gu1GxzbfdJloYmBPWlfhZ/xn7GI=  
Content-Length: 0 
If-Match: "0x8CB172A360EC34B"  

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
Etag Hodnota ETag obsahuje hodnotu v uvozovkách. Klient používá hodnotu k provádění podmíněných PUT operací pomocí hlavičky If-Match požadavku.
Last-Modified Datum a čas poslední změny objektu blob. Formát data se řídí dokumentem RFC 1123. Další informace najdete v tématu Reprezentace hodnot data a času v záhlavích.

Každá operace zápisu v objektu blob (včetně aktualizací metadat nebo vlastností objektu blob) změní čas poslední změny objektu blob.
Content-MD5 Tato hlavička se vrátí, aby klient mohl zkontrolovat integritu obsahu zprávy. Blob Storage vypočítá hodnotu této hlavičky. Nemusí se nutně jednat o stejnou hodnotu jako v hlavičce požadavku. Pro verzi 2019-02-02 nebo novější se tato hlavička vrátí pouze v případě, že požadavek tuto hlavičku obsahuje.
x-ms-content-crc64 Pro verzi 2019-02-02 nebo novější. Tato hlavička se vrátí, aby klient mohl zkontrolovat integritu obsahu zprávy. Blob Storage vypočítá hodnotu této hlavičky. Nemusí se nutně jednat o stejnou hodnotu jako v hlavičce požadavku.

Tato hlavička se vrátí, když hlavička x-ms-source-content-md5 není v požadavku.
x-ms-request-id Tato hlavička jednoznačně identifikuje požadavek, který byl proveden, a dá se 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 vrátí pro požadavky provedené ve verzi 2009-09-19 a novější.
Date Hodnota data a času UTC vygenerovaná službou, která označuje čas, kdy byla odpověď inicializována.
x-ms-blob-append-offset Tato hlavička odpovědi je vrácena 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 ho použít k určení, kolik dalších připojení se dá udělat.
x-ms-request-server-encrypted: true/false Verze 2015-12-11 nebo 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 falsehodnotu .
x-ms-encryption-key-sha256 Verze 2019-02-02 nebo novější. Tato hlavička se vrátí, pokud požadavek použil k šifrování klíč poskytnutý zákazníkem. Klient pak může zajistit, aby byl obsah požadavku úspěšně zašifrován pomocí zadaného klíče.
x-ms-encryption-scope Verze 2019-02-02 nebo novější. Tato hlavička se vrátí, pokud požadavek použil obor šifrování. Klient pak může zajistit, aby byl obsah požadavku úspěšně zašifrován pomocí oboru šifrování.

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  

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, Append Block From URL jak je popsáno níže.

Podrobnosti o autorizaci v této části platí pro cíl kopírování. Další informace o autorizaci zdroje kopírování najdete v podrobnostech o hlavičce x-ms-copy-sourcepožadavku .

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í je ověřen 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 potřebné k volání operace Microsoft Entra uživatele, skupiny, spravované identity nebo instančního objektu Append Block From URL a nejméně privilegované integrované 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 From URL nahraje blok na konec existujícího doplňovacího objektu blob. Blok dat je k dispozici okamžitě po úspěšném volání na serveru. Pro každý doplňovací objekt blob je povoleno maximálně 50 000 připojení, kde. Každý blok může mít jinou velikost.

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 Append Block From URL) Maximální velikost objektu blob
Verze 2022-11-02 a novější 100 MiB (Preview) Přibližně 4,75 TiB (100 MiB × 50 000 bloků)
Verze dřívější než 2022-11-02 4 MiB Přibližně 195 gibibajtů (GiB) (4 MiB × 50 000 bloků)

Ve verzi 2020-10-02 a novější se pro zdroj operace kopírování podporuje autorizace Microsoft Entra ID.

Append Block From URL úspěch pouze v případě, že objekt blob již existuje.

Objekty blob nahrané pomocí pomocí Append Block From URL nezpřístupňují ID bloků, takže pro doplňovací objekt blob nemůžete volat získání seznamu blokovaných objektů blob. Pokud to uděláte, dojde k chybě.

V požadavku můžete zadat následující volitelné podmíněné hlavičky:

  • x-ms-blob-condition-appendpos: Tuto hlavičku můžete nastavit na posun bajtů, při kterém klient očekává připojení bloku. Požadavek bude úspěšný pouze v případě, že aktuální posun odpovídá hodnotě zadané klientem. V opačném případě požadavek selže s kódem chyby 412 (Předběžná podmínka selhala).

    Klienti, kteří používají jeden zapisovač, můžou tuto hlavičku použít k určení, jestli byla Append Block From URL operace úspěšná, i když došlo k selhání sítě.

  • x-ms-blob-condition-maxsize: Klienti můžou pomocí této hlavičky zajistit, aby operace připojení nezvětšily velikost objektu blob nad očekávanou maximální velikost v bajtech. Pokud podmínka selže, požadavek selže s kódem chyby 412 (Předběžná podmínka selhala).

Pokud se pokusíte nahrát blok, který je větší než povolená velikost, vrátí služba kód chyby HTTP 413 (Entita požadavku je příliš velká). Služba také vrátí další informace o chybě v odpovědi, včetně maximální velikosti bloku povolené v bajtech. Pokud se pokusíte nahrát více než 50 000 bloků, vrátí služba kód chyby 409 (konflikt).

Pokud má objekt blob aktivní zapůjčení, musí klient zadat platné ID zapůjčení požadavku, aby mohl do objektu blob zapsat blok. Pokud klient nezadá ID zapůjčení nebo zadá neplatné ID zapůjčení, vrátí služba Blob Storage kód chyby 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í služba kód chyby 412.

Pokud zavoláte Append Block From URL existující objekt blob bloku nebo objekt blob stránky, vrátí služba kód chyby 409 (konflikt). Pokud zavoláte Append Block From URL neexistující objekt blob, vrátí služba kód chyby 404 (Nenalezena).

Vyhněte se duplicitním nebo zpožděným připojením

Ve scénáři s jedním zápisem se klient může vyhnout duplicitním připojením nebo zpožděným zápisům pomocí x-ms-blob-condition-appendpos podmíněné hlavičky ke kontrole aktuálního posunu. Klient se také může vyhnout duplicitám nebo zpožděním tím, že podmíněně zkontroluje ETag hodnotu pomocí If-Match.

Ve scénáři s více zapisovači může každý klient používat podmíněné hlavičky. To nemusí být optimální z hlediska výkonu. Pro nejvyšší souběžnou propustnost připojení by aplikace měly zpracovávat redundantní připojení a zpožděné připojení ve své aplikační vrstvě. Aplikace mohou například přidávat epochy nebo pořadová čísla v připojených datech.

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

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 Append Block From URL žádosti založené na typu účtu úložiště:

Operace Typ účtu úložiště Kategorie fakturace
Připojit adresu URL blokování z (cílový účet1) Objekt blob bloku úrovně Premium
Standard pro obecné účely v2
Standard pro obecné účely v1
Operace zápisu
Připojit adresu URL blokování z (zdrojový účet2) Objekt blob bloku úrovně Premium
Standard pro obecné účely v2
Standard pro obecné účely v1
Operace čtení

1Cílový účet se účtuje za jednu transakci, která zahájí zápis.
2.U zdrojového účtu probíhá jedna transakce pro každou žádost o čtení do zdroje.