Přírůstkové kopírování objektu blob

Operace Incremental Copy Blob zkopíruje snímek objektu blob zdrojové stránky do cílového objektu blob stránky. Do cíle se přenesou jenom rozdíly od dříve zkopírovaného snímku. Zkopírované snímky jsou úplné kopie původního snímku a můžete je číst nebo kopírovat jako obvykle. Toto rozhraní API se podporuje od rest verze 2016-05-31.

Žádost

Požadavek můžete sestavit Incremental Copy Blob následujícím způsobem. Doporučuje se https. Nahraďte myaccount názvem vašeho účtu úložiště, mycontainer názvem vašeho kontejneru a myblob názvem cílového objektu blob. Parametr comp dotazu s hodnotou incrementalcopyoznačuje, že tento požadavek má vytvořit přírůstkový snímek.

Identifikátor URI požadavku metody PUT Verze PROTOKOLU HTTP
https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=incrementalcopy HTTP/1.1

Identifikátor URI služby emulovaného úložiště

Když vytvoříte požadavek na službu emulovaného úložiště, zadejte název hostitele emulátoru a port Azure Blob Storage služby jako 127.0.0.1:10000 a název emulovaného účtu úložiště. Také uveďte, že se tento požadavek používá pro přírůstkové kopírování, nastavením parametru comp dotazu na incrementalcopyhodnotu .

Identifikátor URI požadavku metody PUT Verze PROTOKOLU HTTP
http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob?comp=incrementalcopy 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

V identifikátoru URI požadavku můžete zadat následující další parametry.

Parametr Popis
timeout Nepovinný parametr. Parametr se timeout 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 Povinné pro všechny autorizované žádosti a volitelné pro anonymní žá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.
If-Modified-Since Nepovinný parametr. Hodnota DateTime . Tuto podmíněnou hlavičku zadejte pro zkopírování objektu blob pouze v případě, že se cílový objekt blob od zadaného data a času změnil. Pokud se cílový objekt blob nezměnil, vrátí Blob Storage stavový kód 412 (Předběžná podmínka se nezdařila).
If-Unmodified-Since Nepovinný parametr. Hodnota DateTime . Zadáním této podmíněné hlavičky zkopírujete objekt blob jenom v případě, že cílový objekt blob nebyl od zadaného data a času změněn. Pokud došlo k úpravě cílového objektu blob, vrátí služba Blob Storage stavový kód 412 (Předběžná podmínka se nezdařila).
If-Match Nepovinný parametr. Hodnota ETag . ETag Zadejte hodnotu pro tuto podmíněnou hlavičku, která zkopíruje objekt blob, pouze pokud zadaná ETag hodnota odpovídá hodnotě ETag existujícího cílového objektu blob. Pokud se hodnota cílového objektu ETag blob neshoduje se zadaným objektem ETag pro If-Match, služba Blob Storage vrátí stavový kód 412 (Předběžná podmínka selhala).
If-None-Match Nepovinný parametr. Hodnota ETag nebo zástupný znak (*).

ETag Zadejte hodnotu pro tuto podmíněnou hlavičku pro zkopírování objektu blob jenom v případě, že zadaná ETag hodnota neodpovídá hodnotě ETag cílového objektu blob.

Zadejte zástupný znak (*), který se má provést, pouze pokud cílový objekt blob neexistuje.

Pokud zadaná podmínka není splněná, vrátí Blob Storage stavový kód 412 (Předběžná podmínka se nezdařila).
x-ms-copy-source:name Povinná hodnota. Určuje název snímku objektu blob zdrojové stránky.

Tato hodnota je adresa URL o délce až 2 kibibajtů (KiB), která určuje snímek objektu blob stránky. Hodnota by měla být zakódovaná jako adresa URL, jak by se zobrazovala v identifikátoru URI požadavku. Identifikátor URI zdrojového objektu blob je možné autorizovat jedním ze dvou způsobů:

Identifikátor URI zdrojového objektu blob může odkazovat na snímek objektu blob stránky, ale musí obsahovat token sdíleného přístupového podpisu (SAS), který byl vytvořen v základním objektu blob snímku. Pole podepsaného prostředku (sr) sdíleného přístupového podpisu by mělo být nastavené na b. Příklad: https://<account-name>.blob.core.windows.net/<container-name>/<page-blob-name>?snapshot=2022-07-23T00:14:45.3964054Z&sp=r&st=2022-07-23T00:15:38Z&se=2022-07-23T08:15:38Z&spr=https&sv=2021-06-08&sr=b&sig=<signature>.

Identifikátor URI zdrojového objektu blob může odkazovat na snímek objektu blob veřejné stránky. například https://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot=<DateTime>.
x-ms-client-request-id Nepovinný parametr. Poskytuje klientem vygenerovanou neprůselnou hodnotu s limitem 1 KiB znaků, která se zaznamená 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.

Text požadavku

Žádné

Odpověď

Odpověď obsahuje stavový kód HTTP a sadu hlaviček odpovědi.

Stavový kód

Úspěšná operace vrátí stavový kód 202 (přijato). 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.

Syntax Description
ETag Obsahuje hodnotu, kterou můžete použít k podmíněnému provádění operací. Hodnota je v uvozovkách.
Last-Modified Datum a čas poslední změny objektu blob. Další informace najdete v tématu Znázornění hodnot data a času v záhlavích.

Každá operace zápisu do objektu blob (včetně aktualizací metadat nebo vlastností objektu blob) změní čas poslední změny objektu blob.
x-ms-request-id Jednoznačně identifikuje požadavek, který byl proveden, a lze 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 použitou ke spuštění požadavku.
Date Hodnota data a času UTC, která označuje čas, kdy byla odpověď zahájena. Tato služba vygeneruje tuto hodnotu.
x-ms-copy-id: <id> Identifikátor řetězce pro tuto operaci kopírování. Příkazem s Get Blob Properties zkontrolujte stav této operace kopírování nebo příkazem pass do Abort Copy Blob zastavte čekající kopírování.
x-ms-copy-status: pending Stav operace kopírování. Toto je vždy čeká na vyřízení, což značí, že se kopírování spustilo a probíhá.
x-ms-client-request-id Dá se použít k řešení potíží s požadavky a 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. Hodnota je maximálně 1 024 viditelných znaků ASCII. Pokud hlavička x-ms-client-request-id v požadavku není, nebude v odpovědi.

Text odpovědi

Žádné

Ukázková odpověď

Následuje ukázková odpověď na požadavek na provedení přírůstkové kopie:

Response Status:
HTTP/1.1 202 Accepted

Response Headers: 
Last-Modified: <date> 
ETag: "0x8CEB669D794AFE2"
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0
x-ms-request-id: cc6b209a-b593-4be1-a38a-dde7c106f402
x-ms-version: 2016-05-31
x-ms-copy-id: 1f812371-a41d-49e6-b123-f4b542e851c5
x-ms-copy-status: pending
Date: <date> 

Autorizace

Při volání jakékoli operace přístupu k datům ve službě Azure Storage se vyžaduje autorizace. Následující část popisuje, jak lze autorizovat cílový objekt pro Incremental Copy Blob operaci. Přístup ke zdrojovému objektu blob nebo souboru je autorizovaný samostatně, jak je popsáno v podrobnostech pro hlavičku x-ms-copy-source požadavku.

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 nebo instančního Incremental Copy Blob objektu a předdefinované role Azure RBAC s nejnižšími oprávněními, 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

Cíl přírůstkové kopie nesmí existovat nebo musí být vytvořen s předchozí přírůstkovou kopií ze stejného zdrojového objektu blob. Po vytvoření se cílový objekt blob trvale přidruží ke zdroji a dá se použít jenom pro přírůstkové kopie. Rozhraní Get Blob Properties API a List Blobs označují, jestli je objekt blob přírůstkovým kopírováním objektu blob vytvořeným tímto způsobem.

Přírůstkové kopírování objektů blob nemůžete stáhnout přímo. Jedinými podporovanými operacemi jsou Get Blob Properties, Incremental Copy Bloba Delete Blob. Zkopírované snímky můžete číst a odstraňovat jako obvykle.

Přírůstkové kopírování provádíte ve službě asynchronně a musíte se dotázat na dokončení. Podrobnosti o tom, jak se dotazovat na čekající kopii, najdete v Copy Blob rozhraní API. Po dokončení kopírování bude cílový objekt blob obsahovat nový snímek. Rozhraní Get Blob Properties API vrátí čas snímku nově vytvořeného snímku.

Při prvním provedení přírůstkové kopie cílového objektu blob se vytvoří nový objekt blob se snímkem, který se plně zkopíruje ze zdroje. Každé další volání Incremental Copy Blob vytvoří nový snímek zkopírováním pouze rozdílových změn z dříve zkopírovaného snímku.

Rozdílové změny se na serveru počítají voláním Get Page Ranges na zdrojovém snímku objektu blob. Nastavte prevsnapshot na naposledy zkopírovaný snímek. Proto platí stejná omezení Get Page Ranges pro Incremental Copy Blob. Konkrétně musíte snímky kopírovat ve vzestupném pořadí, a pokud se zdrojový objekt blob znovu vytvoří pomocí nebo Put BlobCopy Blob, Incremental Copy Blob u nových snímků se nezdaří.

Dodatečný prostor úložiště spotřebovaný zkopírovaným snímkem je velikost rozdílových dat přenášených během kopírování. Tuto velikost můžete určit provedením rozdílového Get Page Ranges volání rozhraní API na snímku, abyste ho mohli porovnat s předchozím snímkem.

Viz také

Autorizace požadavků do Služby Azure Storage
Stavové kódy a kódy chyb
Nastavení časových limitů pro operace služby Blob Storage