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 mebibajtů (MiB). Toto rozhraní API je k dispozici od verze 2018-03-28.
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 vytvořit 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 Azure Blob Storage port jako 127.0.0.1:10000
a 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-encryption-scope |
Nepovinný parametr. Označuje rozsah šifrování pro šifrování obsahu požadavku. Tato hlavička je podporovaná ve verzi 2020-12-06 a novější. |
x-ms-tags |
Nepovinný parametr. Nastaví v objektu blob značky zakódované jako řetězec dotazu. 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-copy-source-tag-option |
Nepovinný parametr. Možné hodnoty jsou REPLACE a COPY (rozlišují se malá a malá písmena). Výchozí hodnota je REPLACE .Pokud COPY je zadaný, značky ze zdrojového objektu blob se zkopírují 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 ve zdrojovém objektu blob a operaci Nastavit značky objektů blob v cílovém objektu blob. Tím dojde k dalšímu volání operace ve Get Blob Tags zdrojovém účtu.REPLACE nastaví značky, které hlavička x-ms-tags určuje v cílovém objektu blob. Pokud x-ms-tags určuje REPLACE a žádné značky, pak se v cílovém 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 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 adresu URL zdrojového objektu blob. Hodnota 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 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. Pro Microsoft Entra je podporován pouze nosič schématu. Tato hlavička je podporovaná ve verzi 2020-10-02 a novější. |
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 s objektem blob neukládá. Pokud se tyto dvě hodnoty hash neshodnou, 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ší 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-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 , 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 kopírování není dokončené, obsahuje ETag hodnotu prázdného objektu blob vytvořeného na začátku kopie.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 |
Jedineč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á označ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 success znamená, že operace byla úspěšně dokončena. |
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. |
x-ms-request-server-encrypted: true/false |
Nastavte na hodnotu true , pokud je obsah požadavku úspěšně zašifrován prostřednictvím 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, aby byl obsah požadavku úspěšně zašifrován prostřednictvím oboru šifrování. |
Text odpovědi
Žádné
Ukázková odpověď
Následuje ukázková odpověď na žádost o 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
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 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 |
Objekt blob zdrojového bloku ve stejném účtu úložiště | Yes | Yes | Yes |
Objekt blob zdrojového 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 požadavky na autorizaci operace Nastavit značky objektů blob .
Operaci můžete autorizovat, Copy Blob From URL
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-source
požadavku .
Důležité
Microsoft doporučuje používat Microsoft Entra ID se spravovanými identitami k autorizaci požadavků do služby Azure Storage. Microsoft Entra ID ve srovnání s autorizací sdíleného klíče poskytuje vynikající zabezpečení a snadné použití.
Azure Storage podporuje autorizaci požadavků na data objektů blob pomocí Microsoft Entra ID. S Microsoft Entra ID můžete pomocí řízení přístupu na základě role v Azure (Azure RBAC) udělit oprávnění k objektu zabezpečení. Objektem zabezpečení může být uživatel, skupina, instanční objekt aplikace nebo spravovaná identita Azure. Objekt zabezpečení je ověřen Microsoft Entra ID, aby vrátil token OAuth 2.0. Token se pak dá použít k autorizaci požadavku na službu Blob Service.
Další informace o autorizaci pomocí Microsoft Entra ID najdete v tématu Autorizace přístupu k objektům blob pomocí Microsoft Entra ID.
Oprávnění
Níže jsou uvedené akce RBAC potřebné k volání operace Microsoft Entra uživatele, skupiny, spravované identity nebo instančního objektu Copy Blob From URL
a nejméně privilegované integrované role Azure RBAC, která zahrnuje tuto akci:
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)
- Nejméně privilegovaná předdefinovaná role: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
- Nejméně privilegovaná předdefinovaná role:Čtenář dat objektů 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 Microsoft Entra.
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ý vytvoří operace kopírování.
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 objektů blob
Při zkopí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. Žádné 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é řetězcem dotazu. Klíče a hodnoty značek musí splňovat požadavky na pojmenování a délku zadané v operaci Nastavit značky objektů blob .
Hlavička x-ms-tags
může obsahovat až 2 kilobity značek. Pokud potřebujete více značek, použijte operaci Set Blob Tags
.
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
Žá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 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í |
1Cílový účet se účtuje za jednu transakci, která zahájí zápis.
2.U zdrojového účtu probíhá jedna transakce 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.
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.
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