Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
AzCopy je nástroj příkazového řádku, který můžete použít ke kopírování blobů nebo souborů do nebo z účtu úložiště. Tento článek vám pomůže kopírovat objekty, adresáře a kontejnery z Google Cloud Storage do služby Azure Blob Storage pomocí nástroje AzCopy.
Volba způsobu zadání přihlašovacích údajů pro autorizaci
K autorizaci se službou Azure Storage použijte MICROSOFT Entra ID nebo token sdíleného přístupového podpisu (SAS).
K autorizaci s Google Cloud Storage použijte klíč účtu služby.
Autorizace se službou Azure Storage
Přečtěte si článek Začínáme s nástrojem AzCopy a stáhněte si AzCopy a seznamte se s způsoby, jak službě úložiště poskytnout přihlašovací údaje pro autorizaci.
Poznámka:
Příklady v tomto článku předpokládají, že zadáte autorizační přihlašovací údaje pomocí ID Microsoft Entra.
Pokud byste raději k autorizaci přístupu k datům objektů blob použili token SAS, můžete tento token připojit k adrese URL prostředku v každém příkazu AzCopy. Například: 'https://<storage-account-name>.blob.core.windows.net/<container-name><SAS-token>'.
Autorizace s google cloudovým úložištěm
K autorizaci s Google Cloud Storage použijte klíč účtu služby. Informace o tom, jak vytvořit klíč účtu služby, naleznete v tématu Vytváření a správa klíčů účtu služby.
Po získání klíče služby nastavte GOOGLE_APPLICATION_CREDENTIALS proměnnou prostředí na absolutní cestu k souboru klíče účtu služby:
| Operační systém | Příkaz |
|---|---|
| Windows | set GOOGLE_APPLICATION_CREDENTIALS=<path-to-service-account-key> |
| Linux | export GOOGLE_APPLICATION_CREDENTIALS=<path-to-service-account-key> |
| macOS | export GOOGLE_APPLICATION_CREDENTIALS=<path-to-service-account-key> |
Kopírování objektů, adresářů a kontejnerů
AzCopy používá rozhraní URL PUT Block From API, takže se data kopírují přímo mezi Google Cloud Storage a servery úložiště. Tyto operace kopírování nepoužívají šířku pásma sítě vašeho počítače.
Návod
Příklady v této části ohraničují argumenty cesty s jednoduchými uvozovkami ('). Použití jednoduchých uvozovek ve všech příkazových prostředích s výjimkou prostředí Windows Command Shell (cmd.exe). Pokud používáte příkazový řádek Windows (cmd.exe), uzavřete argumenty cesty do dvojitých uvozovek („") místo jednoduchých uvozovek ('').
Tyto příklady také fungují s účty, které mají hierarchický obor názvů.
Přístup k více protokolům ve službě Data Lake Storage umožňuje pro tyto účty použít stejnou syntaxi adresy URL (blob.core.windows.net).
Při kopírování objektů blob mezi účty úložiště AzCopy převede velká písmena v názvech metadat na malá písmena. Toto chování odpovídá specifikacím protokolu HTTP.
Zkopírování objektu
Pro účty, které mají hierarchický obor názvů, použijte stejnou syntaxi adresy URL (blob.core.windows.net).
Syntaxe
azcopy copy 'https://storage.cloud.google.com/<bucket-name>/<object-name>' 'https://<storage-account-name>.blob.core.windows.net/<container-name>/<blob-name>'
Příklad
azcopy copy 'https://storage.cloud.google.com/mybucket/myobject' 'https://mystorageaccount.blob.core.windows.net/mycontainer/myblob'
Kopírování adresáře
Pro účty, které mají hierarchický obor názvů, použijte stejnou syntaxi adresy URL (blob.core.windows.net).
Syntaxe
azcopy copy 'https://storage.cloud.google.com/<bucket-name>/<directory-name>' 'https://<storage-account-name>.blob.core.windows.net/<container-name>/<directory-name>' --recursive=true
Příklad
azcopy copy 'https://storage.cloud.google.com/mybucket/mydirectory' 'https://mystorageaccount.blob.core.windows.net/mycontainer/mydirectory' --recursive=true
Poznámka:
Tento příklad připojí --recursive příznak ke kopírování souborů ve všech podadresářích.
Zkopírování obsahu adresáře
Obsah adresáře můžete zkopírovat bez zkopírování samotného adresáře pomocí zástupného znaku (*).
Syntaxe
azcopy copy 'https://storage.cloud.google.com/<bucket-name>/<directory-name>/*' 'https://<storage-account-name>.blob.core.windows.net/<container-name>/<directory-name>' --recursive=true
Příklad
azcopy copy 'https://storage.cloud.google.com/mybucket/mydirectory/*' 'https://mystorageaccount.blob.core.windows.net/mycontainer/mydirectory' --recursive=true
Kopírování kontejneru cloudového úložiště
Pro účty, které mají hierarchický obor názvů, použijte stejnou syntaxi adresy URL (blob.core.windows.net).
Syntaxe
azcopy copy 'https://storage.cloud.google.com/<bucket-name>' 'https://<storage-account-name>.blob.core.windows.net' --recursive=true
Příklad
azcopy copy 'https://storage.cloud.google.com/mybucket' 'https://mystorageaccount.blob.core.windows.net' --recursive=true
Kopírování všech kontejnerů v projektu Google Cloud
Nejprve nastavte GOOGLE_CLOUD_PROJECT na identifikátor projektu vašeho projektu Google Cloud.
Pro účty, které mají hierarchický obor názvů, použijte stejnou syntaxi adresy URL (blob.core.windows.net).
Syntaxe
azcopy copy 'https://storage.cloud.google.com/' 'https://<storage-account-name>.blob.core.windows.net' --recursive=true
Příklad
azcopy copy 'https://storage.cloud.google.com/' 'https://mystorageaccount.blob.core.windows.net' --recursive=true
Zkopírujte podmnožinu úložišť v projektu Google Cloud
Nejprve nastavte GOOGLE_CLOUD_PROJECT na identifikátor projektu vašeho projektu Google Cloud.
Zkopírujte podmnožinu kontejnerů pomocí zástupného znaku (*) v názvu kontejneru. Pro účty, které mají hierarchický obor názvů, použijte stejnou syntaxi adresy URL (blob.core.windows.net).
Syntaxe
azcopy copy 'https://storage.cloud.google.com/<bucket*name>' 'https://<storage-account-name>.blob.core.windows.net' --recursive=true
Příklad
azcopy copy 'https://storage.cloud.google.com/my*bucket' 'https://mystorageaccount.blob.core.windows.net' --recursive=true
Zpracování rozdílů v pravidlech pojmenování kontejnerů
Google Cloud Storage má v porovnání s kontejnery objektů blob v Azure jinou sadu zásad vytváření názvů pro názvy kontejnerů. Můžete si o nich přečíst tady. Pokud se rozhodnete zkopírovat skupinu kontejnerů do účtu úložiště Azure, operace kopírování může selhat kvůli rozdílům v pojmenování.
AzCopy zpracovává tři z nejběžnějších problémů, které mohou nastat: úložiště obsahující tečky, úložiště obsahující po sobě jdoucí spojovníky a úložiště obsahující podtržítka. Názvy kontejnerů Google Cloud Storage můžou obsahovat tečky a po sobě jdoucí pomlčky, ale kontejner v Azure nemůže. AzCopy nahrazuje tečky pomlčkami a po sobě jdoucími spojovníky číslem, které představuje počet po sobě jdoucích pomlček (například kbelík s názvem my----bucket se stane my-4-bucket). Pokud má název kontejneru podtržítko (_), AzCopy nahradí podtržítko pomlčkou. Například kontejner s názvem my_bucket se stane my-bucket.
Zpracování rozdílů v pravidlech pojmenování objektů
Google Cloud Storage má v porovnání s objekty blob Azure jinou sadu konvencí vytváření názvů objektů. Můžete si o nich přečíst tady.
Azure Storage nepovoluje názvy objektů (ani žádný segment v cestě k virtuálnímu adresáři) tak, aby končily koncovými tečkami (například my-bucket...). Koncové tečky se při provedení operace kopírování odstraní.
Zpracování rozdílů v metadatech objektů
Google Cloud Storage a Azure umožňují v názvech klíčů objektů různé sady znaků. Tady si můžete přečíst o metadatech ve službě Google Cloud Storage. Klíče objektů blob na straně Azure odpovídají pravidlům pojmenování identifikátorů jazyka C#.
Jako součást příkazu AzCopy copy můžete zadat hodnotu volitelného s2s-handle-invalid-metadata příznaku, který určuje, jak chcete zpracovávat soubory, kde metadata souboru obsahují nekompatibilní názvy klíčů. Následující tabulka popisuje každou hodnotu příznaku.
| Hodnota příznaku | Popis |
|---|---|
| ExcludeIfInvalid | (Výchozí možnost) Metadata nejsou zahrnuta do přenášeného objektu. AzCopy zaznamená upozornění. |
| FailIfInvalid | Objekty se nekopírují. AzCopy zaznamená chybu a zahrne tuto chybu do počtu selhání, který se zobrazí v souhrnu přenosu. |
| RenameIfInvalid | AzCopy opraví neplatný klíč metadat a zkopíruje objekt do Azure s použitím opraveného páru klíč-hodnota metadat. Pokud chcete přesně zjistit, jaké kroky AzCopy provede k přejmenování klíčů objektů, přečtěte si část Jak AzCopy přejmenuje klíče objektů . Pokud Nástroj AzCopy nemůže klíč přejmenovat, objekt se nezkopíruje. |
Přejmenování klíčů objektů nástrojem AzCopy
AzCopy provádí tyto kroky:
Nahradí neplatné znaky znakem _.
Přidá řetězec
rename_na začátek nového platného klíče.Tento klíč se použije k uložení původní hodnoty metadat.
Přidá řetězec
rename_key_na začátek nového platného klíče. Tento klíč se použije k uložení původního neplatného klíče metadat. Tento klíč můžete použít k pokusu o obnovení metadat na straně Azure, protože klíč metadat je zachován jako hodnota ve službě Blob Storage.
Zadání zdrojových a cílových typů
AzCopy pomocí parametru --from-to explicitně definuje typy zdrojových a cílových prostředků, pokud může automatické zjišťování selhat, například ve scénářích propojení nebo emulátorech. To pomáhá nástroji AzCopy pochopit kontext přenosu a odpovídajícím způsobem optimalizovat. Tento parametr můžete nastavit tak, aby GCPBlobexplicitně označí, že příkaz kopíruje z Google Cloud Storage do Azure Blob Storage.
Další kroky
Další příklady najdete v těchto článcích:
- Příklady: Nahrát
- Příklady: Stažení
- Příklady: Kopírování mezi účty
- Příklady: Synchronizovat
- Příklady: Kontejnery Amazon S3
- Příklady: Soubory Azure
Informace o konfiguraci nastavení, optimalizaci výkonu a řešení potíží najdete v těchto článcích: