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:
Érvénytelen karaktereket a "_" karakterre cserél.
Hozzáadja a sztringet
rename_
egy új érvényes kulcs elejéhez.Ezzel a kulccsal mentheti az eredeti metaadat-értéket.
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:
- Példák: Feltöltés
- Példák: Letöltés
- Példák: Másolás fiókok között
- Példák: Szinkronizálás
- Példák: Amazon S3-gyűjtők
- Példák: Azure Files
- Oktatóanyag: Helyszíni adatok migrálása felhőbeli tárolóba az AzCopy használatával
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: