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:10000
a 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 false hodnota . |
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-source
pož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
- 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)
- Předdefinovaná role s nejnižšími oprávněními:Přispěvatel dat v objektech blob služby Storage
Zdrojový objekt blob ve stejném účtu úložiště
- Akce Azure RBAC:Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read
- Předdefinovaná role s nejnižšími oprávněními:Čtenář 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
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