Sdílet prostřednictvím


Kopírování blobu

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 Copy Blob operace potvrzený objekt blob v libovolném účtu úložiště Azure.

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

Poznámka:

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

Žádost

Požadavek Copy Blob můžete vytvořit 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 zadat sdílený přístupový podpis (SAS) pro cílový objekt blob, 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 Protokol HTTP/1.1

Identifikátor URI pro emulovanou službu úložiště

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

Další informace najdete v tématu Použití emulátoru Azurite pro místní vývoj ve službě Azure Storage.

Parametry identifikátoru URI

Pro identifikátor URI požadavku můžete zadat následující další parametry:

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

Hlavičky žádosti

Následující tabulka popisuje povinné a volitelné hlavičky požadavků:

Hlavička požadavku Popis
Authorization Povinné. Určuje schéma autorizace, název účtu a podpis. Další informace najdete v tématu Autorizace požadavků na službu Azure Storage.
Date nebo x-ms-date Povinné. Určuje standard UTC (Coordinated Universal Time) pro požadavek. Další informace najdete v tématu Autorizace požadavků na službu Azure Storage.
x-ms-version Vyžaduje se pro všechny autorizované žádosti. Další informace najdete v tématu Správa verzí pro služby Azure Storage.
x-ms-meta-name:value Volitelný. Určuje uživatelem definovaný pár název/hodnota přidružený k objektu blob. Pokud nejsou zadány žá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 párů název/hodnota, vytvoří se cílový objekt blob se zadanými metadaty a metadata se ze zdrojového objektu blob nebo souboru nezkopírují.

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 ně.
x-ms-tags Volitelný. Nastaví dané značky kódované řetězcem dotazu v objektu blob. Značky se nekopírují ze zdroje kopie. Další informace najdete v tématu Poznámky. Podporováno ve verzi 2019-12-12 a novějších.
x-ms-source-if-modified-since Volitelný. Hodnota DateTime . Tuto podmíněnou hlavičku zadejte pro zkopírování objektu blob pouze v případě, že byl zdrojový objekt blob změněn od zadaného data a času. Pokud zdrojový objekt blob nebyl změněn, 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-unmodified-since Volitelný. Hodnota DateTime . Zadáním této podmíněné hlavičky zkopírujte objekt blob pouze v případě, že zdrojový objekt blob nebyl od zadaného data a času změněn. Pokud byl zdrojový objekt blob změněn, 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-match Volitelný. Hodnota ETag . Tuto podmíněnou hlavičku zadejte, pokud chcete zdrojový objekt blob zkopírovat pouze v případě, že se jeho ETag hodnota shoduje se zadanou hodnotou. Pokud se hodnoty neshodují, služba Blob Storage vrátí 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 Volitelný. Hodnota ETag . Tuto podmíněnou hlavičku zadejte, pokud chcete objekt blob zkopírovat pouze v případě, že se jeho ETag hodnota neshoduje se zadanou hodnotou. Pokud jsou hodnoty identické, 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 Volitelný. 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 cílový objekt blob nebyl změněn, vrátí služba Blob Storage stavový kód 412 (Předběžná podmínka se nezdařila).
If-Unmodified-Since Volitelný. Hodnota DateTime . Tuto podmíněnou hlavičku zadejte pro zkopírování objektu blob pouze v případě, že cílový objekt blob nebyl od zadaného data a času změněn. Pokud byl cílový objekt blob změněn, vrátí blob Storage stavový kód 412 (předběžná podmínka se nezdařila).
If-Match Volitelný. Hodnota ETag . Zadejte hodnotu pro tuto podmíněnou hlavičku ETag , aby se objekt blob zkopíroval pouze v případě, že zadaná ETag hodnota odpovídá ETag hodnotě existujícího cílového objektu blob. Pokud se hodnoty neshodují, služba Blob Storage vrátí stavový kód 412 (Předběžná podmínka se nezdařila).
If-None-Match Volitelný. Hodnota ETag nebo zástupný znak (*).

Zadejte hodnotu pro tuto podmíněnou hlavičku ETag , aby se objekt blob zkopíroval pouze 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é. 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 kibibajty (KiB), která určuje objekt blob. Hodnota by měla být zakódována pomocí adresy URL tak, jak by se zobrazila v identifikátoru URI požadavku.

Operaci čtení zdrojového objektu blob ve stejném účtu úložiště je možné autorizovat prostřednictvím sdíleného klíče. Počínaje verzí 2017-11-09 můžete k autorizaci operace čtení zdrojového objektu blob použít také Microsoft Entra ID. Pokud je ale zdrojem objekt blob v jiném účtu úložiště, musí být zdrojový objekt blob veřejný nebo přístup k němu 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 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 autorizován 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í Copy Blob operace z jiného účtu úložiště umožňují pouze účty úložiště vytvořené 7. června 2012 nebo později.

Tady je několik příkladů adres URL zdrojového objektu:

- 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, zdrojová adresa URL používá 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 starších než 2012-02-12 lze objekty blob kopírovat pouze 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 musí odpovídat 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 se nezdařila).

Pokud je tato hlavička zadána 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 se nezdařila).

Ve verzi 2012-02-12 a novější musí tato hodnota určovat aktivní nekonečné zapůjčení 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 starší než 2012-02-12 (nepodporováno v 2012-02-12 a novějších). Tuto hlavičku zadejte, pokud chcete operaci provést Copy Blob 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 zadána 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 se nezdařila).
x-ms-client-request-id Volitelný. Poskytuje hodnotu vygenerovanou klientem s neprůhlenou hodnotou s limitem znaků 1 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á.
x-ms-access-tier Volitelný. Určuje úroveň, která se má nastavit pro cílový objekt blob. Tato hlavička je určena pouze pro objekty blob stránky na prémiovém účtu s verzí 2017-04-17 a novější. Úplný seznam podporovaných úrovní najdete v tématu Vysoce výkonné služby Premium Storage a spravované disky pro virtuální počítače. Tato hlavička je podporována ve verzi 2018-11-09 a novější pro objekty blob bloku. Vrstvení objektů blob bloku je podporováno v účtech Blob Storage nebo Pro obecné účely v2. Platné hodnoty jsou Hot, Coola ColdArchive. Poznámka: úroveňCold 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í úroveň úložiště.
x-ms-rehydrate-priority Volitelný. Určuje prioritu, se kterou se má dosadit archivovaný objekt blob. Tato hlavička je podporována ve verzi 2019-02-02 a novější pro objekty blob bloku. Platné hodnoty jsou High a Standard. Prioritu objektu blob můžete nastavit pouze jednou. Tato hlavička bude ignorována při následných požadavcích na stejný objekt blob. Výchozí priorita bez této hlavičky je Standard.
x-ms-seal-blob Volitelný. Podporováno ve verzi 2019-12-12 nebo novější. Tato hlavička je platná pouze 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í do objektu, které se má nastavit pro objekt blob. Toto je datum, do kterého lze objekt blob chránit před úpravami nebo odstraněním. Dodržuje 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 pro objekt 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 doby uchování do data. 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 podmíněné hlavičky x-ms-if-tags a x-ms-source-if-tags jako ú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.

Obsah požadavku

Žádné.

Odezva

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 starších než 2012-02-12 vrátí úspěšná operace stavový kód 201 (Vytvořeno).

Informace o stavových kódech naleznete v tématu Stav a kódy chyb.

Hlavičky odpovědi

Odpověď pro tuto operaci obsahuje následující hlavičky. Odpověď může obsahovat také další standardní hlavičky HTTP. Všechny standardní hlavičky odpovídají specifikaci protokolu HTTP/1.1.

Hlavička odpovědi Popis
ETag Pokud je kopírování dokončeno ve verzi 2012-02-12 a novější, obsahuje tato hlavička ETag hodnotu cílového objektu blob. Pokud kopírování není dokončeno, hlavička obsahuje ETag hodnotu prázdného objektu blob vytvořeného na začátku operace kopírování.

Ve verzích starších než 2012-02-12 vrací tato hlavička hodnotu cílového ETag objektu blob.

Ve verzi 2011-08-18 a novější je hodnota v uvozovkách ETag .
Last-Modified Vrátí datum a čas, kdy byla operace kopírování do cílového objektu blob dokončena.
x-ms-request-id Jednoznač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í. Pomocí Get Blob nebo Get Blob Properties můžete zkontrolovat stav této operace kopírování nebo předat Abort Copy Blob zrušit čekající operaci kopírování.
x-ms-copy-status: <success ¦ pending> Verze 2012-02-12 a novější. Označuje stav operace kopírování s těmito hodnotami:

- success: Operace byla úspěšně dokončena.
- pending: Operace probíhá.
x-ms-version-id: <DateTime> Verze 2019-12-12 a novější. Jednoznačně identifikuje objekt blob podle jeho verze. Tuto neprůhlednou 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 se rovná hodnotě hlavičky x-ms-client-request-id, pokud se nachází v požadavku a hodnota je maximálně 1 024 viditelných znaků ASCII. Pokud v požadavku není hlavička x-ms-client-request-id, nebude tato hlavička v odpovědi k dispozici.

Obsah 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

Autorizace se vyžaduje při volání jakékoli operace přístupu k datům ve službě Azure Storage. Následující tabulka popisuje, jak lze autorizovat cílové a zdrojové objekty pro operaci Copy Blob:

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

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

Operaci Copy Blob můžete autorizovat, 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 ke čtení (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 poskytuje vynikající zabezpečení a snadné použití v porovnání s autorizací sdíleného klíče.

Azure Storage podporuje použití Microsoft Entra ID k autorizaci přístupů k datům objektů blob. S ID Microsoft Entra můžete pomocí řízení přístupu na základě role v Azure (Azure RBAC) udělit oprávnění k objektu zabezpečení. Objekt zabezpečení může být uživatel, skupina, instanční objekt aplikace nebo spravovaná identita Azure. Instanční objekt zabezpečení je ověřený pomocí ID Microsoft Entra pro vrácení tokenu OAuth 2.0. Token se pak dá použít k autorizaci požadavku ve službě Blob Service.

Další informace o autorizaci pomocí ID Microsoft Entra najdete v tématu Autorizace přístupu k objektům blob pomocíMicrosoft Entra ID .

Povolení

Níže je uvedena akce RBAC potřebná pro uživatele, skupinu, spravovanou identitu nebo instanční objekt Microsoftu pro volání operace Copy Blob a nejméně privilegované předdefinované 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ší Copy Blob může být operace dokončena asynchronně. Tato operace vrátí ID kopie, které můžete použít ke kontrole nebo zrušení operace kopírování. Vzhledem k asynchronní povaze operace kopírování kopíruje služba Blob Storage objekty blob s maximálním úsilím. Blob service kopíruje objekty blob, když prostředky serveru nejsou využívány jinými úlohami, takže není zaručeno, že se kopie spustí okamžitě nebo se dokončí v určené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í mít stejný typ objektu blob jako zdrojový objekt blob. Veškerý existující cílový objekt blob bude přepsán. Cílový objekt blob nemůžete upravit, když probíhá operace kopírování.

Ve verzi 2015-02-21 a novější 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.

Více čekajících Copy Blob operací v rámci jednoho účtu může být zpracováno postupně. Cílový objekt blob může mít pouze jednu nevyřízenou 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ý již čeká na operaci kopírování, se nezdaří se stavovým kódem 409 (konflikt).

Kopírování Copy Blob operace z jiného účtu úložiště umožňují 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 se nezdaří se stavovým kódem 400 (Chybný požadavek).

Operace Copy Blob vždy kopíruje celý zdrojový objekt blob nebo soubor. Kopírování rozsahu bajtů nebo sady bloků se nepodporuje.

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, připojení nebo stránka), nebo to může být 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ž efektivně nahradíte cílový objekt blob. Taková operace kopírování odstraní 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. Povýšením 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 s jiným názvem. Výsledný cílový blob, do kterého lze zapisovat, není snímek.

Při kopírování z objektu blob stránky vytvoří služba Blob Storage cílový objekt blob stránky o délce zdrojového objektu blob. Zpočátku objekt blob stránky obsahuje všechny nuly. Poté se vyčtou rozsahy zdrojových stránek a zkopírují se neprázdné rozsahy.

V případě objektu blob bloku nebo doplňovacího objektu blob vytvoří služba Blob Storage před návratem z této operace 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 nezkopí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 doplňovací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 zavolat Get Blob nebo Get Blob Properties na cílový objekt blob a zkontrolovat stav operace kopírování. Konečný objekt blob bude potvrzen po dokončení operace kopírování.

Když 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 průběhu kopírování selže se stavovým kódem 409 (Konflikt). Pokud má cílový objekt blob nekonečné zapůjčení, musí být ID zapůjčení předáno .Copy Blob Zapůjčení na dobu neurčitou není povoleno.

Hodnota ETag objektu blob bloku se změní při Copy Blob spuštění operace a po jejím dokončení. Hodnota ETag objektu blob stránky se mění při Copy Blob spuštění operace 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í, značek a metadat objektů blob

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)

Potvrzený seznam bloků zdrojového objektu blob se také zkopíruje do cílového objektu blob, pokud je objekt blob objektem blob bloku. Žádné nepotvrzené bloky se nezkopí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, stávají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é řetězcem dotazu. Klíče a hodnoty značek musí splňovat požadavky na pojmenování a délku, jak je uvedeno v části Nastavení značek objektů blob.

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

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

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

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

Pokud má cílový objekt blob aktivní nekonečné zapůjčení, musíte ve volání Copy Blob operace zadat ID jeho zapůjčení. Pokud je zadaná zapůjčená adresa aktivní zapůjčená se stavovou dobou trvání, toto volání se nezdaří se stavovým kódem 412 (Předběžná podmínka se nezdařila). Zatímco operace kopírování čeká na vyřízení, jakákoli operace zapůjčení cílového objektu blob selže se stavovým kódem 409 (Konflikt). Nekonečné zapůjčení cílového objektu blob se tímto způsobem uzamkne během operace kopírování bez ohledu na to, jestli kopírujete do cílového objektu blob, který má jiný název než zdroj, kopírujete do cílového objektu blob, který má stejný název jako zdroj, nebo povyšujete snímek nad jeho základním objektem 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 se nezdařila) pro požadavky provedené ve verzi 2013-08-15 a novější. U starších verzí vrací služba Blob Storage 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 povýšit snímek nad jeho základním objektem blob, pokud je v online vrstvě (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í, kterou lze číst i zapisovat.

Kopírování verzí objektů blob

Můžete provést operaci kopírování a povýšit verzi přes její základní objekt blob, pokud je v online vrstvě (horké nebo studené). Tímto způsobem můžete obnovit starší verzi objektu blob. Verze zůstává, ale její cíl se přepíše kopií, kterou lze číst i zapisovat.

Kopírování archivovaného objektu blob

Od verze 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ůstává v archivní vrstvě. Pokud je zdrojovým objektem blob archivovaný objekt blob, musí požadavek obsahovat hlavičku x-ms-access-tier , která označuje úroveň cílového objektu blob. Cílový objekt blob musí být v online vrstvě. Nemůžete kopírovat do objektu blob v archivní vrstvě.

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

Požadavek může selhat, pokud dochází k dosazování zdrojového objektu blob.

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

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

Pokud se Copy Blob operace dokončí asynchronně, použijte následující tabulku k určení dalšího kroku 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: čeká na vyřízení Operace kopírování nebyla dokončena. Dotazujte se cílového objektu blob pomocí Get Blob Properties k prozkoumání hlavičky x-ms-copy-status , dokud se operace nedokončí nebo nezdaří.
4xx, 500 nebo 503 Operace kopírování se nezdařila.

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

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

Jakýkoli pokus o úpravu nebo pořízení snímku cílového objektu blob během operace kopírování selže se stavovým kódem 409 (Konflikt), "Probíhá kopírování objektu blob".

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

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

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í se nezdařila.

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

Fakturování

Žádosti o ceny můžou pocházet z klientů, kteří používají rozhraní API služby Blob Storage, a to buď přímo prostřednictvím rozhraní REST API služby Blob Storage, nebo z klientské knihovny služby Azure Storage. Tyto žádosti nabíhají poplatky za transakci. Typ transakce ovlivňuje způsob účtování účtu. Například transakce čtení nabíhají do jiné fakturační kategorie než transakce zápisu. Následující tabulka uvádí kategorii fakturace pro požadavky Copy Blob na základě 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 verze 2
Standard pro obecné účely verze 1
Operace zápisu
Kopírování objektu blob (zdrojový účet2) Objekt blob bloku Úrovně Premium
Standard pro obecné účely verze 2
Standard pro obecné účely verze 1
Operace čtení

1Cílový účet se účtuje za jednu transakci, která zahájí zápis.
2Pokud je zdrojový objekt v jiném účtu, zdrojový účet provede jednu transakci pro každý požadavek na čtení zdrojového objektu.

Další informace o cenách pro zadané fakturační kategorie najdete v tématu ceny služby Azure Blob Storage.

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

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

Když zkopírujete zdrojový objekt 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ě. Výsledkem operace kopírování je pak účtování poplatků za využití kapacity účtu úložiště pro tyto další prostředky. Pokud jsou ale názvy zdrojových a cílových objektů blob stejné v rámci stejného účtu (například při povýšení snímku na jeho základní objekt blob), neúčtují se žádné další poplatky kromě dodatečných metadat kopií uložených ve verzi 2012-02-12 a novější.

Když povýšíte snímek, aby nahradil svůj základní objekt blob, snímek a základní objekt blob se stanou identickými. 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 s různými názvy nemohou sdílet bloky nebo stránky, i když jsou identické. Další informace o scénářích nákladů na snímky najdete v tématu Principy toho, jak se za snímky účtují poplatky.

Viz také

autorizace požadavků na službu Azure Storage
Kódy stavu a chyb
kódy chyb Blob Storage
Vysvětlení toho, jak se za snímky účtují poplatky
Přerušení kopírování objektu blob