Sdílet prostřednictvím


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 pouze rozdíly od dříve zkopírovaného snímku. Zkopírované snímky jsou kompletní 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 vytvořit 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 následovaný názvem emulovaného účtu úložiště. Také uveďte, že tento požadavek je určen pro přírůstkové kopírování, a to 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 místní vývoj služby 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 timeout je vyjádřen 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á použít pro tento požadavek. Další informace najdete v tématu Správa verzí pro služby Azure Storage.
If-Modified-Since Nepovinný parametr. Hodnota DateTime . Zadáním této podmíněné hlavičky zkopírujete objekt blob jenom 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 se cílový objekt blob od zadaného data a času nezměnil. Pokud se cílový objekt blob změnil, 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 pro zkopírování objektu blob, pouze pokud zadaná ETag hodnota odpovídá hodnotě ETag existujícího cílového objektu blob. Pokud se ETag objekt blob cílového objektu blob neshoduje se zadaným objektem ETag blob If-Match, vrátí Blob Storage stavový kód 412 (Předběžná podmínka se nezdařila).
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, pouze pokud zadaná ETag hodnota neodpovídá hodnotě ETag cílového objektu blob.

Zadejte zástupný znak (*) pro provedení operace, 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 v identifikátoru URI požadavku. Identifikátor URI zdrojového objektu blob se dá 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 zdroje (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 počtu znaků 1 KiB, která je zaznamenána 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 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.
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í. Pomocí příkazu s Get Blob Properties zkontrolujte stav této operace kopírování nebo předáním do Abort Copy Blob zastavte čekající kopii.
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.

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 Incremental Copy Blob 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

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 vytvoření 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é následné 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