Adatok másolása a Google Cloud Storage-ból az Azure Storage-ba az AzCopy használatával

Az AzCopy egy parancssori segédprogram, amellyel blobokat és fájlokat másolhat a tárfiókok között. Ez a cikk segít objektumokat, könyvtárakat és gyűjtőket másolni a Google Cloud Storage-ból az Azure Blob Storage-ba az AzCopy használatával.

Az engedélyezési hitelesítő adatok megadására szolgáló mód kiválasztása

  • Az Azure Storage-ral való engedélyezéshez használja a Microsoft Entra-azonosítót vagy a közös hozzáférésű jogosultságkód (SAS) jogkivonatot.

  • A Google Cloud Storage-nal való engedélyezéshez használjon szolgáltatásfiókkulcsot.

Engedélyezés az Azure Storage-ral

Tekintse meg az AzCopy használatának első lépéseit ismertető cikket az AzCopy letöltéséhez, és ismerje meg, hogyan adhat meg hitelesítési hitelesítő adatokat a tárolási szolgáltatásnak.

Megjegyzés:

A cikkben szereplő példák feltételezik, hogy a Microsoft Entra ID használatával adta meg az engedélyezési hitelesítő adatokat.

Ha inkább SAS-jogkivonatot használ a blobadatokhoz való hozzáférés engedélyezéséhez, akkor ezt a jogkivonatot az egyes AzCopy-parancsok erőforrás-URL-címéhez fűzheti. For example: 'https://<storage-account-name>.blob.core.windows.net/<container-name><SAS-token>'.

Engedélyezés a Google Cloud Storage-nal

A Google Cloud Storage-nal való engedélyezéshez egy szolgáltatásfiókkulcsot kell használnia. A szolgáltatásfiókkulcsok létrehozásáról további információt a szolgáltatásfiókkulcsok létrehozása és kezelése című témakörben talál.

Miután beszerezte a szolgáltatáskulcsot, állítsa a GOOGLE_APPLICATION_CREDENTIALS környezeti változót a szolgáltatásfiók kulcsfájljának abszolút elérési útjára:

Operációs rendszer Parancs
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>

Objektumok, könyvtárak és gyűjtők másolása

Az AzCopy a Put Block From URL API-t használja, így az adatok közvetlenül a Google Cloud Storage és a tárolókiszolgálók között lesznek átmásolva. Ezek a másolási műveletek nem használják a számítógép hálózati sávszélességét.

Tipp.

Az ebben a szakaszban szereplő példák az elérési utak argumentumait egyetlen idézőjelekkel ('' ) egészítik ki. A Windows command Shell (cmd.exe) kivételével minden parancshéjban használjon egyetlen idézőjelet. Ha Windows Command Shellt (cmd.exe) használ, az elérésiút-argumentumokat idézőjelek ('' ) helyett dupla idézőjelekkel ("") foglalja össze.

Ezek a példák hierarchikus névtérrel rendelkező fiókokkal is működnek. A Data Lake Storage többprotokollos hozzáférése lehetővé teszi ugyanazon URL-szintaxis (blob.core.windows.net) használatát ezeken a fiókokon.

Objektum másolása

Használja ugyanazt az URL-szintaxist (blob.core.windows.net) a hierarchikus névtérrel rendelkező fiókokhoz.

Szintaxis

azcopy copy 'https://storage.cloud.google.com/<bucket-name>/<object-name>' 'https://<storage-account-name>.blob.core.windows.net/<container-name>/<blob-name>'

Example

azcopy copy 'https://storage.cloud.google.com/mybucket/myobject' 'https://mystorageaccount.blob.core.windows.net/mycontainer/myblob'

Könyvtár másolása

Használja ugyanazt az URL-szintaxist (blob.core.windows.net) a hierarchikus névtérrel rendelkező fiókokhoz.

Szintaxis

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

Example

azcopy copy 'https://storage.cloud.google.com/mybucket/mydirectory' 'https://mystorageaccount.blob.core.windows.net/mycontainer/mydirectory' --recursive=true

Megjegyzés:

Ez a példa hozzáfűzi a jelölőt az --recursive összes alkönyvtár fájljainak másolásához.

Könyvtár tartalmának másolása

A könyvtár tartalmát anélkül másolhatja, hogy magát a könyvtárat a helyettesítő karakter (*) használatával másolta.

Szintaxis

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

Example

azcopy copy 'https://storage.cloud.google.com/mybucket/mydirectory/*' 'https://mystorageaccount.blob.core.windows.net/mycontainer/mydirectory' --recursive=true

Cloud Storage-gyűjtő másolása

Használja ugyanazt az URL-szintaxist (blob.core.windows.net) a hierarchikus névtérrel rendelkező fiókokhoz.

Szintaxis

azcopy copy 'https://storage.cloud.google.com/<bucket-name>' 'https://<storage-account-name>.blob.core.windows.net' --recursive=true

Example

azcopy copy 'https://storage.cloud.google.com/mybucket' 'https://mystorageaccount.blob.core.windows.net' --recursive=true

Az összes gyűjtő másolása Egy Google Cloud-projektben

Először állítsa be a GOOGLE_CLOUD_PROJECT Google Cloud-projekt projektazonosítóját.

Használja ugyanazt az URL-szintaxist (blob.core.windows.net) a hierarchikus névtérrel rendelkező fiókokhoz.

Szintaxis

azcopy copy 'https://storage.cloud.google.com/' 'https://<storage-account-name>.blob.core.windows.net' --recursive=true

Example

azcopy copy 'https://storage.cloud.google.com/' 'https://mystorageaccount.blob.core.windows.net' --recursive=true

Gyűjtők részhalmazának másolása Google Cloud-projektben

Először állítsa be a GOOGLE_CLOUD_PROJECT Google Cloud-projekt projektazonosítóját.

Másolja ki a gyűjtők egy részhalmazát egy helyettesítő karakter (*) használatával a gyűjtő nevében. Használja ugyanazt az URL-szintaxist (blob.core.windows.net) a hierarchikus névtérrel rendelkező fiókokhoz.

Szintaxis

azcopy copy 'https://storage.cloud.google.com/<bucket*name>' 'https://<storage-account-name>.blob.core.windows.net' --recursive=true

Example

azcopy copy 'https://storage.cloud.google.com/my*bucket' 'https://mystorageaccount.blob.core.windows.net' --recursive=true

A gyűjtő elnevezési szabályai közötti különbségek kezelése

A Google Cloud Storage különböző elnevezési konvenciókkal rendelkezik a gyűjtőnevekhez az Azure Blob-tárolókhoz képest. Ezekről itt olvashat. Ha egy gyűjtőcsoportot egy Azure Storage-fiókba másol, az elnevezési különbségek miatt a másolási művelet meghiúsulhat.

Az AzCopy a leggyakoribb problémák közül háromat kezeli; pontokat, egymást követő kötőjeleket tartalmazó gyűjtőket és aláhúzásjeleket tartalmazó gyűjtők. A Google Cloud Storage-gyűjtőnevek tartalmazhatnak időszakokat és egymást követő kötőjeleket, de az Azure-beli tárolók nem. Az AzCopy az időszakokat kötőjelekre és egymást követő kötőjelekre cseréli egy olyan számra, amely az egymást követő kötőjelek számát jelöli (például egy elnevezett my----bucket gyűjtő lesz my-4-bucket. Ha a gyűjtő neve aláhúzásjellel (_) rendelkezik, akkor az AzCopy az aláhúzásjelet kötőjelre cseréli. Egy nevesített my_bucket gyűjtő például a következő lesz my-bucket: .

Az objektumelnevezési szabályok különbségének kezelése

A Google Cloud Storage az Azure-blobokhoz képest eltérő elnevezési konvencióval rendelkezik az objektumnevekhez. Ezekről itt olvashat.

Az Azure Storage nem engedélyezi az objektumneveket (vagy a virtuális könyvtár elérési útjának egyik szegmensét) záró pontokkal (például my-bucket...). A záró pontokat a rendszer levágja a másolási művelet végrehajtásakor.

Az objektum metaadatai közötti különbségek kezelése

A Google Cloud Storage és az Azure különböző karakterkészleteket engedélyez az objektumkulcsok nevében. A metaadatokról itt olvashat a Google Cloud Storage-ban. Az Azure-oldalon a blobobjektum-kulcsok megfelelnek a C#-azonosítók elnevezési szabályainak.

Az AzCopy-parancs copy részeként megadhat egy értéket a választható s2s-handle-invalid-metadata jelzőhöz, amely meghatározza, hogyan szeretné kezelni azokat a fájlokat, amelyek metaadatai nem kompatibilis kulcsneveket tartalmaznak. Az alábbi táblázat az egyes jelölőértékeket ismerteti.

Jelölőérték Leírás
ExcludeIfInvalid (Alapértelmezett beállítás) A metaadatok nem szerepelnek az átvitt objektumban. Az AzCopy figyelmeztetést naplóz.
FailIfInvalid Az objektumok nem lesznek másolva. Az AzCopy naplóz egy hibát, és tartalmazza ezt a hibát az átviteli összegzésben megjelenő sikertelen számban.
RenameIfInvalid Az AzCopy feloldja az érvénytelen metaadatkulcsot, és a feloldott metaadatkulcs-érték pár használatával átmásolja az objektumot az Azure-ba. Ha tudni szeretné, hogy az AzCopy pontosan milyen lépéseket tesz az objektumkulcsok átnevezéséhez, tekintse meg az alábbi, Hogyan nevezi át az AzCopy az objektumkulcsokat ? Ha az AzCopy nem tudja átnevezni a kulcsot, akkor az objektum nem lesz másolva.

Az AzCopy átnevezi az objektumkulcsokat

Az AzCopy a következő lépéseket hajtja végre:

  1. Érvénytelen karaktereket a "_" karakterre cserél.

  2. Hozzáadja a sztringet rename_ egy új érvényes kulcs elejéhez.

    Ezzel a kulccsal mentheti az eredeti metaadat-értéket.

  3. Hozzáadja a sztringet rename_key_ egy új érvényes kulcs elejéhez. Ez a kulcs az eredeti metaadatok érvénytelen kulcsának mentésére szolgál. Ezzel a kulccsal megpróbálhatja helyreállítani a metaadatokat az Azure-beli oldalon, mivel a metaadatkulcs értékként megmarad a Blob Storage szolgáltatásban.

Következő lépések

További példákat az alábbi cikkekben talál:

A beállítások konfigurálásához, a teljesítmény optimalizálásához és a problémák elhárításához tekintse meg ezeket a cikkeket: