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 incrementalcopy
označ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 incrementalcopy
hodnotu .
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:
- Akce Azure RBAC:Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write (pro zápis do existujícího objektu blob) nebo Microsoft.Storage/storageAccounts/blobServices/containers/blobs/add/action (pro zápis nového objektu blob do cíle)
- Nejméně privilegovaná předdefinovaná role: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
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 Blob
a 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 Blob
Copy 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