Sdílet prostřednictvím


Zkopírování objektu blob

Operace Copy Blob zkopíruje objekt blob do cíle v rámci účtu úložiště.

Ve verzi 2012-02-12 a novější může být zdrojem operace Copy Blob potvrzený objekt blob v libovolném účtu úložiště Azure.

Počínaje verzí 2015-02-21 může být zdrojem operace Copy Blob soubor Azure v libovolném účtu úložiště Azure.

Poznámka

Kopírování z jiného účtu úložiště umožňují Copy Blob pouze účty úložiště vytvořené 7. června 2012 nebo později.

Žádost

Požadavek můžete vytvořit Copy Blob následujícím způsobem. Doporučujeme 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.

Počínaje verzí 2013-08-15 můžete pro cílový objekt blob zadat sdílený přístupový podpis (SAS), pokud je ve stejném účtu jako zdrojový objekt blob. Počínaje verzí 2015-04-05 můžete také zadat sdílený přístupový podpis pro cílový objekt blob, pokud je v jiném účtu úložiště.

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

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

Když vytváříte požadavek na službu emulovaného úložiště, zadejte název hostitele emulátoru a Azure Blob Storage port jako 127.0.0.1:10000a potom 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 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. Další informace najdete v tématu Správa verzí pro služby Azure Storage.
x-ms-meta-name:value Nepovinný parametr. Určuje dvojici název/hodnota definovanou uživatelem přidruženou k objektu blob. Pokud nejsou zadané žádné páry název/hodnota, operace zkopíruje metadata ze zdrojového objektu blob nebo souboru do cílového objektu blob. Pokud je zadán jeden nebo více dvojic název/hodnota, cílový objekt blob se vytvoří se zadanými metadaty a metadata se nezkopírují ze zdrojového objektu blob nebo souboru.

Počínaje verzí 2009-09-19 musí názvy metadat splňovat pravidla pojmenování identifikátorů jazyka C#. Další informace najdete v tématu Pojmenování kontejnerů, objektů blob a metadat a odkazování na nich.
x-ms-tags Nepovinný parametr. Nastaví dané značky zakódované řetězcem dotazu v objektu blob. Značky se nezkopírují ze zdroje kopírování. Další informace najdete v tématu Poznámky. Podporováno ve verzi 2019-12-12 a novější.
x-ms-source-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 zdrojový objekt blob od zadaného data a času změnil. Pokud se zdrojový objekt blob nezměnil, vrátí Blob Storage stavový kód 412 (Předběžná podmínka se nezdařila). Tuto hlavičku nemůžete zadat, pokud je zdrojem soubor Azure.
x-ms-source-if-unmodified-since Nepovinný parametr. Hodnota DateTime . Zadáním této podmíněné hlavičky zkopírujete objekt blob pouze v případě, že zdrojový objekt blob nebyl od zadaného data a času změněn. Pokud došlo ke změně zdrojového objektu blob, vrátí služba Blob Storage stavový kód 412 (Předběžná podmínka se nezdařila). Tuto hlavičku nemůžete zadat, pokud je zdrojem soubor Azure.
x-ms-source-if-match Nepovinný parametr. Hodnota ETag . Zadáním této podmíněné hlavičky zkopírujete zdrojový objekt blob pouze v případě, že jeho ETag hodnota odpovídá zadané hodnotě. Pokud se hodnoty neshodovaly, vrátí Blob Storage stavový kód 412 (Předběžná podmínka se nezdařila). Tuto hlavičku nemůžete zadat, pokud je zdrojem soubor Azure.
x-ms-source-if-none-match Nepovinný parametr. Hodnota ETag . Zadáním této podmíněné hlavičky zkopírujete objekt blob jenom v případě, že jeho ETag hodnota neodpovídá zadané hodnotě. Pokud jsou hodnoty stejné, vrátí Blob Storage stavový kód 412 (předběžná podmínka se nezdařila). Tuto hlavičku nemůžete zadat, pokud je zdrojem soubor Azure.
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, která zkopíruje objekt blob pouze v případě, že zadaná ETag hodnota odpovídá hodnotě ETag existujícího cílového objektu blob. Pokud se hodnoty neshodovaly, 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, aby se objekt blob zkopíroval jenom v případě, že zadaná ETag hodnota neodpovídá ETag hodnotě cílového objektu blob.

Zadejte zástupný znak (*) pro provedení operace pouze v případě, že 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 zdrojového objektu blob nebo souboru.

Počínaje verzí 2012-02-12 může být tato hodnota adresa URL o délce až 2 kibibajtů (KiB), která určuje objekt blob. Hodnota by měla být zakódovaná tak, jak by se zobrazovala v identifikátoru URI požadavku.

Operace čtení zdrojového objektu blob ve stejném účtu úložiště se dá autorizovat prostřednictvím sdíleného klíče. Počínaje verzí 2017-11-09 můžete také použít Microsoft Entra ID k autorizaci operace čtení ve zdrojovém objektu blob. Pokud je ale zdrojem objekt blob v jiném účtu úložiště, musí být zdrojový objekt blob veřejný nebo musí být přístup k němu autorizovaný prostřednictvím sdíleného přístupového podpisu. Pokud je zdrojový objekt blob veřejný, nevyžaduje se k provedení operace kopírování žádná autorizace.

Počínaje verzí 2015-02-21 může být zdrojovým objektem soubor v Azure Files. Pokud je zdrojovým objektem soubor, který se zkopíruje do objektu blob, musí být zdrojový soubor autorizovaný prostřednictvím sdíleného přístupového podpisu bez ohledu na to, jestli se nachází ve stejném účtu nebo v jiném účtu.

Kopírování z jiného účtu úložiště umožňují Copy Blob pouze účty úložiště vytvořené 7. června 2012 nebo později.

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>

Pokud je zdrojovým objektem soubor v Azure Files, používá adresa URL zdroje následující formát. Všimněte si, že adresa URL musí obsahovat platný token SAS pro soubor.

- https://myaccount.file.core.windows.net/myshare/mydirectorypath/myfile?sastoken

Ve verzích před 12. 2. 2012 je možné objekty blob kopírovat jenom v rámci stejného účtu a název zdroje může používat tyto formáty:

– Objekt blob v pojmenovaném kontejneru: /accountName/containerName/blobName
– Snímek v pojmenovaném kontejneru: /accountName/containerName/blobName?snapshot=<DateTime>
– Objekt blob v kořenovém kontejneru: /accountName/blobName
– Snímek v kořenovém kontejneru: /accountName/blobName?snapshot=<DateTime>
x-ms-lease-id:<ID> Vyžaduje se, pokud má cílový objekt blob aktivní zapůjčení. ID zapůjčení zadané pro tuto hlavičku se musí shodovat s ID zapůjčení cílového objektu blob. Pokud požadavek neobsahuje ID zapůjčení nebo id není platné, operace selže se stavovým kódem 412 (Předběžná podmínka selhala).

Pokud je tato hlavička zadaná a cílový objekt blob aktuálně nemá aktivní zapůjčení, operace selže se stavovým kódem 412 (Předběžná podmínka selhala).

Ve verzi 2012-02-12 a novější musí tato hodnota určovat aktivní nekonečné zapůjčení zapůjčeného objektu blob. ID zapůjčení s omezenou dobou trvání selže se stavovým kódem 412 (předběžná podmínka se nezdařila).
x-ms-source-lease-id: <ID> Volitelné pro verze před 2012-02-12 (nepodporované v 2012-02-12 a novějších). Zadáním této hlavičky provedete Copy Blob operaci pouze v případě, že zadané ID zapůjčení odpovídá aktivnímu ID zapůjčení zdrojového objektu blob.

Pokud je tato hlavička zadaná a zdrojový objekt blob aktuálně nemá aktivní zapůjčení, operace selže se stavovým kódem 412 (Předběžná podmínka selhala).
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á.
x-ms-access-tier Nepovinný parametr. Určuje úroveň, která se má nastavit v cílovém objektu blob. Tato hlavička je pro objekty blob stránky na účtu Premium jenom s verzí 2017-04-17 a novější. Úplný seznam podporovaných úrovní najdete v tématu Vysoce výkonné úložiště Premium a spravované disky pro virtuální počítače. Tato hlavička se podporuje ve verzi 2018-11-09 a novější pro objekty blob bloku. Vrstvení objektů blob bloku se podporuje v účtech Blob Storage nebo Pro obecné účely v2. Platné hodnoty jsou Hot, CoolCold a Archive. Poznámka:Cold úroveň se podporuje pro verzi 2021-12-02 a novější. Podrobné informace o vrstvení objektů blob bloku najdete v tématu Horká, studená a archivní vrstva úložiště.
x-ms-rehydrate-priority Nepovinný parametr. Určuje prioritu, s jakou se má dosadí archivovaný objekt blob. Tato hlavička se podporuje ve verzi 2019-02-02 a novější pro objekty blob bloku. Platné hodnoty jsou High a Standard. Prioritu objektu blob můžete nastavit jenom jednou. Tato hlavička se při následných požadavcích na stejný objekt blob ignoruje. Výchozí priorita bez této hlavičky je Standard.
x-ms-seal-blob Nepovinný parametr. Podporováno ve verzi 2019-12-12 nebo novější. Tato hlavička je platná jenom pro doplňovací objekty blob. Po dokončení operace kopírování zapečetí cílový objekt blob.
x-ms-immutability-policy-until-date Verze 2020-06-12 a novější. Určuje datum uchování, které se má nastavit v objektu blob. Toto je datum, do kterého je možné objekt blob chránit před úpravami nebo odstraněním. Má RFC1123 formát.
x-ms-immutability-policy-mode Verze 2020-06-12 a novější. Určuje režim zásad neměnnosti, který se má nastavit v objektu blob. Platné hodnoty jsou unlocked a locked. Hodnota unlocked označuje, že uživatel může zásadu změnit zvýšením nebo snížením data uchování. Hodnota locked označuje, že tyto akce jsou zakázány.
x-ms-legal-hold Verze 2020-06-12 a novější. Určuje blokování z právních důvodů, které se má u objektu blob nastavit. Platné hodnoty jsou true a false.

Tato operace podporuje x-ms-if-tags podmíněné hlavičky a x-ms-source-if-tags tak, aby byly ú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.

Text požadavku

Žádné

Odpověď

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

Stavový kód

Ve verzi 2012-02-12 a novější vrátí úspěšná operace stavový kód 202 (přijato).

Ve verzích před 2012-02-12 vrátí úspěšná operace 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 Pokud je kopírování dokončené ve verzi 2012-02-12 a novější, obsahuje ETag tato hlavička hodnotu cílového objektu blob. Pokud se kopírování nedokončí, hlavička obsahuje ETag hodnotu prázdného objektu blob vytvořeného na začátku operace kopírování.

Ve verzích před 2012-02-12 vrátí tato hlavička ETag hodnotu cílového objektu blob.

Ve verzi 2011-08-18 a novější ETag je hodnota v uvozovkách.
Last-Modified Vrátí datum a čas dokončení operace kopírování do cílového objektu blob.
x-ms-request-id Jedinečně identifikuje požadavek, který byl proveden. Tuto hlavičku můžete 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, která se používá 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, která označuje čas, kdy služba odeslala odpověď.
x-ms-copy-id: <id> Verze 2012-02-12 a novější. Poskytuje identifikátor řetězce pro tuto operaci kopírování. Get Blob Pomocí příkazu nebo Get Blob Properties můžete zkontrolovat stav této operace kopírování nebo předat doAbort Copy Blob, pokud chcete zrušit čekající operaci kopírování.
x-ms-copy-status: <success ¦ pending> Verze 2012-02-12 a novější. Určuje stav operace kopírování s těmito hodnotami:

- success: Operace se úspěšně dokončila.
- pending: Operace probíhá.
x-ms-version-id: <DateTime> Verze 2019-12-12 a novější. Jedinečně identifikuje objekt blob podle jeho verze. Tuto neprůselnou hodnotu můžete použít v následných požadavcích na přístup k této verzi objektu blob.
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 je rovna hodnotě x-ms-client-request-id hlavičky, pokud je v požadavku a hodnota je maximálně 1 024 viditelných znaků ASCII. Pokud hlavička x-ms-client-request-id v požadavku není, nebude tato hlavička v odpovědi.

Text odpovědi

Žádné

Ukázková odpověď

Následující kód je ukázkovou odpovědí na požadavek na zkopírování objektu blob:

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: 2015-02-21  
x-ms-copy-id: 1f812371-a41d-49e6-b123-f4b542e851c5  
x-ms-copy-status: pending
x-ms-version-id: <DateTime>  
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í tabulka popisuje, jak lze autorizovat cílové a zdrojové objekty pro Copy Blob operaci:

typ objektu autorizace Microsoft Entra ID Autorizace sdíleného přístupového podpisu (SAS) Autorizace sdíleného klíče (nebo sdílený klíč Lite)
Cílový objekt blob Yes Yes Yes
Zdrojový objekt blob ve stejném účtu úložiště Yes Yes Yes
Zdrojový objekt blob v jiném účtu úložiště No Yes No

Pokud požadavek určuje značky v x-ms-tags hlavičce požadavku, volající musí splňovat požadavky na autorizaci operace Nastavit značky objektů blob .

Operaci můžete autorizovat, Copy Blob jak je popsáno níže. Všimněte si, že zdrojový objekt blob v jiném účtu úložiště musí být autorizován samostatně prostřednictvím tokenu SAS s oprávněním číst (r). Další informace o autorizaci zdrojového objektu blob 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 Copy Blob a nejméně privilegované integrované role Azure RBAC, která zahrnuje tuto akci:

Cílový objekt blob

Zdrojový objekt blob ve stejném účtu úložiště

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

Ve verzi 2012-02-12 a novější může být operace dokončena Copy Blob asynchronně. Tato operace vrátí ID kopírování, které můžete použít ke kontrole nebo zrušení operace kopírování. Vzhledem k asynchronní povaze operace kopírování služba Blob Storage kopíruje objekty blob s maximálním úsilím. Služba Blob Service kopíruje objekty blob v případě, že prostředky serveru nejsou využívány jinými úlohami, takže není zaručené, že se kopie spustí okamžitě nebo dokončí v zadaném časovém rámci.

Zdrojovým objektem blob pro operaci kopírování může být objekt blob bloku, doplňovací objekt blob, objekt blob stránky nebo snímek. Pokud cílový objekt blob již existuje, musí být stejného typu objektu blob jako zdrojový objekt blob. Všechny existující cílové objekty blob se přepíšou. Cílový objekt blob nemůžete změnit, když probíhá operace kopírování.

Ve verzi 2015-02-21 a novějších může být zdrojem operace kopírování také soubor v Azure Files. Pokud je zdrojem soubor, musí být cílem objekt blob bloku.

Několik čekajících Copy Blob operací v rámci účtu se může zpracovávat postupně. Cílový objekt blob může obsahovat pouze jednu nevyřešenou Copy Blob operaci. Jinými slovy, objekt blob nemůže být cílem pro více čekajících Copy Blob operací. Pokus o zkopírování objektu blob do cílového objektu blob, který už má čekající operaci kopírování, selže se stavovým kódem 409 (Konflikt).

Kopírování z jiného účtu úložiště umožňují Copy Blob pouze účty úložiště vytvořené 7. června 2012 nebo později. Pokus o kopírování z jiného účtu úložiště do účtu vytvořeného před 7. červnem 2012 selže se stavovým kódem 400 (chybný požadavek).

Operace Copy Blob vždy zkopíruje celý zdrojový objekt blob nebo soubor. Kopírování rozsahu bajtů nebo sady bloků není podporováno.

Operace Copy Blob může mít některou z následujících forem:

  • Zdrojový objekt blob můžete zkopírovat do cílového objektu blob, který má jiný název. Cílovým objektem blob může být existující objekt blob stejného typu (blok, doplňovací objekt nebo stránka) nebo nový objekt blob, který operace kopírování vytvoří.

  • Zdrojový objekt blob můžete zkopírovat do cílového objektu blob se stejným názvem, čímž v podstatě nahradíte cílový objekt blob. Taková operace kopírování odebere všechny nepotvrzené bloky a přepíše metadata objektu blob.

  • Zdrojový soubor v Azure Files můžete zkopírovat do cílového objektu blob. Cílovým objektem blob může být existující objekt blob bloku nebo nový objekt blob bloku, který operace kopírování vytvoří. Kopírování ze souborů do objektů blob stránky nebo doplňovacích objektů blob se nepodporuje.

  • Snímek můžete zkopírovat přes jeho základní objekt blob. Zvýšením úrovně snímku na pozici základního objektu blob můžete obnovit starší verzi objektu blob.

  • Snímek můžete zkopírovat do cílového objektu blob, který má jiný název. Výsledný cílový objekt blob je zapisovatelný objekt blob, a ne snímek.

Při kopírování z objektu blob stránky vytvoří Blob Storage cílový objekt blob stránky o délce zdrojového objektu blob. Objekt blob stránky zpočátku obsahuje všechny nuly. Potom se zobrazí výčet oblastí zdrojové stránky a zkopírují se neprázdné oblasti.

V případě objektu blob bloku nebo doplňovacích objektů blob služba Blob Storage před návratem z této operace vytvoří potvrzený objekt blob nulové délky.

Při kopírování z objektu blob bloku se zkopírují všechny potvrzené bloky a jejich ID bloků. Nepotvrzené bloky se nekopírují. Na konci operace kopírování má cílový objekt blob stejný počet potvrzených bloků jako zdroj.

Při kopírování z přidávacího objektu blob se zkopírují všechny potvrzené bloky. Na konci operace kopírování bude mít cílový objekt blob méně nebo stejný počet potvrzených bloků jako zdrojový objekt blob.

U všech typů objektů blob můžete stav operace kopírování zkontrolovat voláním Get Blob metody nebo Get Blob Properties v cílovém objektu blob. Konečný objekt blob se potvrdí po dokončení operace kopírování.

Pokud zdroj operace kopírování poskytuje ETag hodnoty, jakékoli změny zdroje v průběhu operace kopírování způsobí selhání této operace. Pokus o změnu cílového objektu blob v době, kdy probíhá kopírování, selže se stavovým kódem 409 (konflikt). Pokud má cílový objekt blob nekonečné zapůjčení, musí se ID zapůjčení předat do Copy Blob. Časově omezené zapůjčení není povoleno.

Hodnota ETag objektu blob bloku se změní při Copy Blob zahájení operace a po dokončení operace. Hodnota ETag objektu blob stránky se při Copy Blob spuštění operace změní a během operace kopírování se bude často měnit. Obsah objektu blob bloku je viditelný prostřednictvím Get příkazu až po dokončení operace úplného kopírování.

Kopírování vlastností objektů blob, značek a metadat

Při kopírování objektu blob se do cílového objektu blob, který má stejné hodnoty, zkopírují následující systémové vlastnosti:

  • Content-Type

  • Content-Encoding

  • Content-Language

  • Content-Length

  • Cache-Control

  • Content-MD5

  • Content-Disposition

  • x-ms-blob-sequence-number (pouze pro objekty blob stránky)

  • x-ms-committed-block-count (pouze pro doplňovací objekty blob a pouze pro verzi 2015-02-21)

Pokud se jedná o objekt blob bloku, zkopíruje se do cílového objektu blob také seznam potvrzených bloků zdrojového objektu blob. Nepotvrzené bloky se nekopírují.

Cílový objekt blob má vždy stejnou velikost jako zdrojový objekt blob. Hodnota hlavičky Content-Length cílového objektu blob odpovídá hodnotě této hlavičky zdrojového objektu blob.

Pokud jsou zdrojový a cílový objekt blob stejné, Copy Blob odebere všechny nepotvrzené bloky. Pokud jsou v tomto případě zadána metadata, existující metadata se přepíší novými metadaty.

Pokud hlavička x-ms-tags poskytuje značky pro cílový objekt blob, musí být zakódované jako řetězec dotazu. Klíče a hodnoty značek musí splňovat požadavky na pojmenování a délku, jak je uvedeno v tématu Nastavení značek objektů blob.

Hlavička x-ms-tags může obsahovat až 2 kilobity značek. Pokud potřebujete více značek, použijte Set Blob Tags operaci .

Pokud hlavička x-ms-tags neobsahuje značky, nezkopírují se značky ze zdrojového objektu blob.

Kopírování zapůjčeného objektu blob

Operace Copy Blob čte jenom ze zdrojového objektu blob, takže na stavu zapůjčení zdrojového objektu blob nezáleží. Operace však Copy Blob při spuštění operace kopírování uloží ETag hodnotu zdrojového objektu blob. Pokud se ETag hodnota změní před dokončením operace kopírování, operace selže. Změnám zdrojového objektu blob můžete zabránit tak, že ho během operace kopírování pronajímáte.

Pokud má cílový objekt blob aktivní nekonečné zapůjčení, musíte ve volání operace zadat jeho ID zapůjčení Copy Blob . Pokud je zapůjčení, které zadáte, aktivní konečné zapůjčení, toto volání selže se stavovým kódem 412 (Předběžná podmínka se nezdařila). Zatímco operace kopírování čeká na vyřízení, všechny operace zapůjčení cílového objektu blob se stavovým kódem 409 (konflikt) se nezdaří. Během operace kopírování se tímto způsobem uzamkne nekonečné zapůjčení cílového objektu blob, ať už kopírujete do cílového objektu blob, který má jiný název než zdroj, kopírujete do cílového objektu blob se stejným názvem jako zdroj, nebo propagujete snímek nad jeho základní objekt blob.

Pokud klient zadá ID zapůjčení objektu blob, který ještě neexistuje, vrátí služba Blob Storage stavový kód 412 (Předběžná podmínka selhala) pro požadavky z verze 2013-08-15 a novější. Pro starší verze Blob Storage vrátí stavový kód 201 (Vytvořeno).

Kopírování snímků objektů blob

Při kopírování zdrojového objektu blob se do cíle nezkopírují žádné snímky ani verze zdrojového objektu blob. Když se cílový objekt blob přepíše kopií, všechny snímky nebo verze přidružené k cílovému objektu blob zůstanou pod jeho názvem nedotčené.

Můžete provést operaci kopírování a zvýšit úroveň snímku nad jeho základní objekt blob, pokud je na online úrovni (horká nebo studená). Tímto způsobem můžete obnovit starší verzi objektu blob. Snímek zůstane, ale jeho cíl se přepíše kopií, která se dá číst i zapisovat.

Kopírování verzí objektů blob

Můžete provést operaci kopírování, která zvýší úroveň verze oproti základnímu objektu blob, pokud je na online úrovni (horká nebo studená). Tímto způsobem můžete obnovit starší verzi objektu blob. Verze zůstane, ale její cíl je přepsán kopií, která se dá číst i zapisovat.

Kopírování archivovaného objektu blob

Počínaje verzí 2018-11-09 můžete zkopírovat archivovaný objekt blob do nového objektu blob v rámci stejného účtu úložiště. Zdrojový objekt blob zůstane v archivní úrovni. Pokud je zdrojovým objektem blob archivovaný objekt blob, požadavek musí obsahovat hlavičku x-ms-access-tier , která označuje úroveň cílového objektu blob. Cílový objekt blob musí být na online úrovni. Do objektu blob v archivní vrstvě nejde kopírovat.

Počínaje verzí 2021-02-12 můžete archivovaný objekt blob zkopírovat do online úrovně v jiném účtu úložiště, pokud je cílový účet ve stejné oblasti jako zdrojový účet.

Požadavek může selhat, pokud se zdrojový objekt blob dosazuje.

Podrobné informace o vrstvení na úrovni objektů blob bloku najdete v tématu Horká, studená a archivní vrstva úložiště.

Práce s čekající operací kopírování (verze 2012-02-12 a novější)

Pokud se Copy Blob operace dokončí asynchronně, pomocí následující tabulky určete další krok na základě vráceného stavového kódu:

Stavový kód Význam
202 (přijato), x-ms-copy-status: success Operace kopírování byla úspěšně dokončena.
202 (přijato), x-ms-copy-status: pending Operace kopírování nebyla dokončena. Dotazování cílového objektu blob pomocí Get Blob Properties k prozkoumání x-ms-copy-status hlavičky, dokud se operace nedokončí nebo selže.
4xx, 500 nebo 503 Operace kopírování selhala.

Během operace a po této Copy Blob operaci obsahují vlastnosti cílového Copy Blob objektu blob ID kopírování operace a adresu URL zdrojového objektu blob. Po dokončení operace služba Blob Storage zapíše hodnotu času a výsledku (success, failednebo aborted) do vlastností cílového objektu blob. Pokud má operace výsledek failed , hlavička x-ms-copy-status-description obsahuje řetězec podrobností o chybě.

Čekající Copy Blob operace má dvoutýdenní časový limit. U pokusu o kopírování, který se nedokončil po dvou týdnech, vyprší časový limit a ponechá prázdný objekt blob s polem x-ms-copy-status nastaveným na failed hodnotu x-ms-copy-status-description 500 (OperationCancelled). Občasné, ne závažné chyby, ke kterým může dojít během operace kopírování, můžou bránit v průběhu operace, ale nezpůsobí její selhání. V těchto případech x-ms-copy-status-description popisuje přerušované chyby.

Všechny pokusy o úpravu nebo vytvoření snímku cílového objektu blob během operace kopírování selžou se stavovým kódem 409 (konflikt) s probíhajícím kopírováním objektu blob.

Pokud zavoláte Abort Copy Blob operaci, uvidíte x-ms-copy-status:aborted záhlaví. Cílový objekt blob bude mít neporušená metadata a délku objektu blob 0 bajtů. Pokud chcete operaci kopírování zkusit znovu, můžete původní volání Copy Blob zopakovat.

Pokud se Copy Blob operace dokončí synchronně, pomocí následující tabulky určete stav operace kopírování:

Stavový kód Význam
202 (přijato), x-ms-copy-status: success Operace kopírování byla úspěšně dokončena.
4xx, 500 nebo 503 Operace kopírování selhala.

Úroveň se dědí pro úrovně úložiště Premium. U objektů blob bloku se přepsáním cílového objektu blob zdědí horká nebo studená úroveň z cíle, pokud x-ms-access-tier není k dispozici. Přepsání archivovaného objektu blob selže. Podrobné informace o vrstvení na úrovni objektů blob bloku najdete v tématu Horká, studená a archivní vrstva úložiště.

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

Operace Typ účtu úložiště Kategorie fakturace
Kopírování objektu blob (cílový účet1) Objekt blob bloku úrovně Premium
Standard pro obecné účely v2
Standard pro obecné účely v1
Operace zápisu
Kopírování objektu blob (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.Pokud je zdrojový objekt v jiném účtu, zdrojový účet načte jednu transakci pro každou žádost o čtení zdrojového objektu.

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

Cílový účet také účtují transakční náklady na každý požadavek na zrušení operace kopírování (viz Přerušení kopírování objektu blob) nebo ke kontrole stavu operace kopírování (viz Získání objektu blob nebo Získání vlastností objektu blob).

Pokud se navíc zdrojový a cílový účet nacházejí v různých oblastech (například USA – sever a USA – jih), bude se zdrojovému účtu úložiště účtovat jako výchozí přenos šířka pásma, kterou použijete k přenosu požadavku. Výchozí přenos dat mezi účty ve stejné oblasti je bezplatný.

Při kopírování zdrojového objektu blob do cílového objektu blob, který má jiný název v rámci stejného účtu, použijete pro nový objekt blob další prostředky úložiště. Operace kopírování pak způsobí účtování poplatků za využití kapacity účtu úložiště pro tyto další prostředky. Pokud jsou ale názvy zdrojového a cílového objektu blob stejné v rámci stejného účtu (například při zvýšení úrovně snímku na základní objekt blob), neúčtují se žádné další poplatky kromě dalších metadat kopírování uložených ve verzi 2012-02-12 a novější.

Když zvýšíte úroveň snímku tak, aby nahradil jeho základní objekt blob, stanou se snímek a základní objekt blob identické. Sdílejí bloky nebo stránky, takže operace kopírování nemá za následek další poplatky za využití kapacity účtu úložiště. Pokud ale zkopírujete snímek do cílového objektu blob, který má jiný název, bude se za tuto operaci účtovat další poplatek za prostředky úložiště, které výsledný nový objekt blob používá. Dva objekty blob, které mají různé názvy, nemůžou sdílet bloky ani stránky, i když jsou identické. Další informace o scénářích nákladů na snímky najdete v tématu Vysvětlení, jak se za snímky načítají poplatky.

Viz také

Autorizace žádostí do Služby Azure Storage
Stavové kódy a kódy chyb
Kódy chyb služby Blob Storage
Vysvětlení způsobu, jakým se za snímky načítají poplatky
Přerušení kopírování objektu blob