Kopírování dat z Google Cloud Storage do Azure Storage pomocí AzCopy
AzCopy je nástroj příkazového řádku, pomocí kterého můžete kopírovat objekty blob nebo soubory 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.
Výběr způsobu zadává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:
V příkladech v tomto článku se předpokládá, že jste pomocí ID Microsoft Entra zadali přihlašovací údaje pro autorizaci.
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. Pří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žijete 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.
Tip
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 prostředí Windows Command Shell (cmd.exe), uzavřete argumenty cesty s dvojitými uvozovkami ("") místo jednoduchých uvozovek ('' ).
Tyto příklady také pracují 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
).
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érí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
ID 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
Kopírování podmnožina kontejnerů v projektu Google Cloud
Nejprve nastavte GOOGLE_CLOUD_PROJECT
ID 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 nejběžnější problémy, které mohou nastat; kontejnery obsahující tečky, kontejnery obsahující po sobě jdoucí spojovníky a kontejnery, které obsahují 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 kontejner 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í oříznou.
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 příznaku s2s-handle-invalid-metadata
, který určuje, jak chcete zpracovávat soubory, ve kterých 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 vyřeší neplatný klíč metadat a zkopíruje objekt do Azure pomocí dvojice hodnot klíče přeložených 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ů níže. 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.
Další kroky
Další příklady najdete v těchto článcích:
- Příklady: Nahrání
- Příklady: Stažení
- Příklady: Kopírování mezi účty
- Příklady: Synchronizovat
- Příklady: Kontejnery Amazon S3
- Příklady: Soubory Azure
- Kurz: Migrace místních dat do cloudového úložiště pomocí AzCopy
Informace o konfiguraci nastavení, optimalizaci výkonu a řešení potíží najdete v těchto článcích: