Sdílet prostřednictvím


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:

  1. Nahradí neplatné znaky znakem _.

  2. 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.

  3. 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:

Informace o konfiguraci nastavení, optimalizaci výkonu a řešení potíží najdete v těchto článcích: