Kopírování objektu blob z adresy URL

Operace Copy Blob From URL synchronně zkopíruje objekt blob do cíle v rámci účtu úložiště pro zdrojové objekty blob o velikosti až 256 mb (MiB). Toto rozhraní API je dostupné od verze 28. 3. 2018.

Zdrojem operace Copy Blob From URL může být jakýkoli potvrzený objekt blob bloku v libovolném účtu úložiště Azure, který je veřejný nebo autorizovaný sdíleným přístupovým podpisem.

Žádost

Požadavek můžete sestavit Copy Blob From URL 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.

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 port Azure Blob Storage jako 127.0.0.1:10000a 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 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 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 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ána jedna nebo více dvojic název/hodnota, cílový objekt blob se vytvoří se zadanými metadaty a metadata se ze zdrojového objektu blob nebo souboru nezkopírují.

Od verze 2009-09-19 musí názvy metadat splňovat pravidla pojmenování pro identifikátory jazyka C#. Další informace najdete v tématu Pojmenování kontejnerů, objektů blob a metadat a odkazování na nich.
x-ms-encryption-scope Nepovinný parametr. Určuje obor šifrování pro šifrování obsahu požadavku. Tato hlavička je podporovaná ve verzi 2020-12-06 a novějších.
x-ms-tags Nepovinný parametr. Nastaví v objektu blob značky s kódováním řetězce dotazu. Značky se ze zdroje kopírování nekopírují. Další informace najdete v tématu Poznámky. Podporováno ve verzi 2019-12-12 a novější.
x-ms-copy-source-tag-option Nepovinný parametr. Možné hodnoty jsou REPLACE a COPY (rozlišují se malá a velká písmena). Výchozí hodnota je REPLACE.

Pokud COPY je zadaný parametr , zkopírují se značky ze zdrojového objektu blob do cílového objektu blob. Zdrojový objekt blob musí být soukromý a požadavek musí mít oprávnění k operaci Získání značek objektů blob u zdrojového objektu blob a k operaci Nastavení značek objektů blob pro cílový objekt blob. Tím dojde k dodatečnému Get Blob Tags volání operace ve zdrojovém účtu.

REPLACE nastaví značky, které hlavička x-ms-tags určuje pro cílový objekt blob. Pokud x-ms-tags určuje REPLACE a žádné značky, pak se u cílového objektu blob nenastaví žádné značky. Zadání COPY a x-ms-tags způsobí chybu 409 (Konflikt).

Podporováno ve verzi 2021-04-10 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 zdrojový objekt blob byl od zadaného data a času změněn. 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 . Tuto podmíněnou hlavičku zadejte pro zkopírování objektu 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 identické, 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.
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 . 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 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 Zadáním hodnoty pro tuto podmíněnou hlavičku zkopírujte 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á hodnotě ETag cílového objektu blob.

Zadejte zástupný znak (*), který provede operaci 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 adresu URL zdrojového objektu blob. Hodnotou může být adresa URL o délce až 2 kibibajtů (KiB), která určuje objekt blob. Hodnota by měla být zakódovaná jako adresa URL, jak by se zobrazovala v identifikátoru URI požadavku. Zdrojový objekt blob musí být veřejný nebo 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 žádná autorizace. Pokud je velikost zdrojového objektu blob větší než 256 MiB, požadavek selže s chybou 409 (Konflikt). Typ objektu blob zdrojového objektu blob musí být objekt blob bloku. 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>
x-ms-copy-source-authorization: <scheme> <signature> Nepovinný parametr. Určuje schéma autorizace a podpis pro zdroj kopírování. Další informace najdete v tématu Autorizace požadavků do služby Azure Storage.
Azure Active Directory podporuje pouze nosné schéma.
Tato hlavička je podporovaná ve verzi 2020-10-02 a novějších.
x-ms-requires-sync:true Povinná hodnota. Označuje, že se jedná o synchronní Copy Blob From URL operaci místo asynchronní Copy Blob operace.
x-ms-source-content-md5 Nepovinný parametr. Určuje hodnotu hash MD5 obsahu objektu blob z identifikátoru URI. Tato hodnota hash se používá k ověření integrity objektu blob během přenosu dat z identifikátoru URI. Když je tato hlavička zadána, služba úložiště porovná hodnotu hash obsahu, který byl doručen ze zdroje kopírování, s touto hodnotou hlavičky.

Hodnota hash MD5 se neukládá s objektem blob.

Pokud se tyto dvě hodnoty hash neshodí, operace selže s kódem chyby 400 (Chybný požadavek).
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 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ších musí tato hodnota určovat aktivní nekonečné zapůjčení zapůjčeného objektu blob. Id konečného zapůjčení selže se stavovým kódem 412 (Předběžná podmínka se nezdařila).
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á.
x-ms-access-tier Nepovinný parametr. Určuje úroveň, která se má nastavit v cílovém objektu blob. Tato hlavička je určená jenom pro objekty blob stránky na účtu Premium 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 je podporovaná 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, Cool, Cold nebo 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ě.

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.

Hlavička odpovědi Description
ETag Pokud je kopírování dokončené, obsahuje ETag hodnotu cílového objektu blob. Pokud se kopírování nedokončí, obsahuje ETag hodnotu prázdného objektu blob vytvořeného na začátku kopírování.

Hodnota ETag je 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 Jednoznačně identifikuje požadavek, který byl proveden. Můžete 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, která se používá ke spuštění požadavku.
Date Hodnota data a času UTC, která určuje čas, kdy služba odeslala odpověď.
x-ms-copy-id: <id> Identifikátor řetězce pro tuto operaci kopírování.
x-ms-copy-status: <success> Označuje stav operace kopírování. Hodnota znamená success , že se operace úspěšně dokončila.
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 se nachází v požadavku a hodnota je maximálně 1 024 viditelných znaků ASCII. Pokud se hlavička x-ms-client-request-id v požadavku nenachází, nebude tato hlavička v odpovědi.
x-ms-request-server-encrypted: true/false Nastavte na hodnotu true , pokud je obsah požadavku úspěšně zašifrován pomocí zadaného algoritmu. V opačném případě je falsehodnota .
x-ms-encryption-scope Vráceno, pokud požadavek používal obor šifrování, aby klient mohl zajistit, že se obsah požadavku úspěšně zašifruje prostřednictvím oboru šifrování.

Text odpovědi

Žádné

Ukázková odpověď

Následuje ukázková odpověď 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: 2018-03-28  
x-ms-copy-id: 1f812371-a41d-49e6-b123-f4b542e851c5  
x-ms-copy-status: success  
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 Copy Blob From URL 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 bloku Yes Yes Yes
Zdrojový objekt blob bloku ve stejném účtu úložiště Yes Yes Yes
Zdrojový objekt blob bloku 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 autorizační požadavky operace Nastavit značky objektů blob .

Operaci můžete autorizovat Copy Blob From URL , jak je popsáno níže. Mějte na paměti, že zdrojový objekt blob v jiném účtu úložiště se musí autorizovat 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 .

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í ověří 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 nezbytné k volání Copy Blob From URL operace Microsoft Entra uživatele, skupiny nebo instančního objektu a předdefinované role Azure RBAC s nejnižšími oprávněními, která tuto akci zahrnuje:

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

Zdrojový a cílový objekt blob pro Copy Blob From URL operaci musí být objekt blob bloku.

Ve verzi 2020-10-02 a novější se pro zdroj operace kopírování podporuje autorizace Azure Active Directory.

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

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 bloku nebo nový objekt blob, který operace kopírování vytvoří.

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í bude mít cílový objekt blob stejný počet potvrzených bloků jako zdroj.

Hodnota ETag objektu blob bloku se změní při Copy Blob From URL zahájení operace a po dokončení operace.

Kopírování vlastností a metadat objektu blob

Při kopírování objektu blob bloku se do cílového objektu blob zkopírují následující systémové vlastnosti se stejnými hodnotami:

  • Content-Type

  • Content-Encoding

  • Content-Language

  • Content-Length

  • Cache-Control

  • Content-MD5

  • Content-Disposition

Seznam potvrzených bloků zdrojového objektu blob se také zkopíruje do cílového objektu blob. Nepotvrzené bloky se nekopírují.

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

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 zadané v operaci 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 From URL čte jenom ze zdrojového objektu blob, takže na stavu zapůjčení zdrojového objektu blob nezáleží.

Fakturace

Požadavky na ceny můžou pocházet od 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. Za tyto žádosti se účtují poplatky za každou transakci. Typ transakce ovlivňuje způsob účtování za účet. Například transakce čtení se načítají do jiné kategorie fakturace než transakce zápisu. Následující tabulka uvádí kategorii fakturace pro Copy Blob From URL žádosti založené na typu účtu úložiště:

Operace Typ účtu úložiště Kategorie fakturace
Kopírování objektu blob z adresy URL (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 z adresy URL (zdrojový účet2) Objekt blob bloku úrovně Premium
Standard pro obecné účely v2
Standard pro obecné účely v1
Operace čtení

1.Cílový účet se účtuje za jednu transakci pro zahájení zápisu.
2.Zdrojový účet pro každý požadavek na čtení zdrojového objektu způsobuje jednu transakci.

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

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

Při kopírování zdrojového objektu blob do cílového objektu blob, který má v rámci stejného účtu jiný název, použijete pro nový objekt blob další prostředky úložiště. Operace kopírování pak bude účtovat poplatky za využití kapacity účtu úložiště pro tyto další prostředky.

Viz také

Autorizace požadavků 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 účtují poplatky za snímky