Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
AzCopy adalah utilitas baris perintah yang dapat Anda gunakan untuk menyalin gumpalan atau file ke atau dari akun penyimpanan. Artikel ini membantu Anda menyalin objek, direktori, dan wadah dari Google Cloud Storage ke Azure Blob Storage dengan menggunakan AzCopy.
Pilih bagaimana Anda akan memberikan kredensial otorisasi
Untuk mengotorisasi dengan Azure Storage, gunakan ID Microsoft Entra atau token Tanda Tangan Akses Bersama (SAS).
Untuk mengotorisasi dengan Google Cloud Storage, gunakan kunci akun layanan.
Mengotorisasi dengan Azure Storage
Lihat artikel Mulai menggunakan AzCopy untuk mengunduh AzCopy dan pelajari tentang cara memberikan informasi masuk otorisasi ke layanan penyimpanan.
Nota
Contoh dalam artikel ini mengasumsikan bahwa Anda memberikan kredensial otorisasi dengan menggunakan ID Microsoft Entra.
Jika Anda lebih suka menggunakan token SAS untuk mengotorisasi akses ke data blob, maka Anda dapat menambahkan token tersebut ke URL sumber daya di setiap perintah AzCopy. Misalnya: 'https://<storage-account-name>.blob.core.windows.net/<container-name><SAS-token>'.
Mengotorisasi dengan Google Cloud Storage
Untuk mengotorisasi dengan Google Cloud Storage, gunakan kunci akun layanan. Untuk informasi tentang cara membuat kunci akun layanan, lihat Membuat dan mengelola kunci akun layanan.
Setelah Anda mendapatkan kunci layanan, atur GOOGLE_APPLICATION_CREDENTIALS variabel lingkungan ke jalur absolut ke file kunci akun layanan:
| Sistem operasi | Command |
|---|---|
| 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> |
Menyalin objek, direktori, dan wadah
AzCopy menggunakan PUT Block From URL API, sehingga data disalin langsung antara Google Cloud Storage dan server penyimpanan. Operasi salin ini tidak menggunakan bandwidth jaringan komputer Anda.
Petunjuk / Saran
Contoh dalam bagian ini mengapit argumen jalur dengan tanda kutip tunggal (''). Gunakan tanda kutip tunggal di semua shell perintah kecuali Windows Command Shell (cmd.exe). Jika Anda menggunakan Windows Command Shell (cmd.exe), sertakan argumen jalur dengan tanda kutip ganda ("") dan bukan tanda kutip tunggal ('').
Contoh-contoh ini juga berfungsi dengan akun yang memiliki namespace hierarkis.
Akses multi-protokol pada Data Lake Storage memungkinkan Anda menggunakan sintaks URL yang sama (blob.core.windows.net) pada akun tersebut.
Menyalin objek
Gunakan sintaks URL yang sama (blob.core.windows.net) untuk akun yang memiliki namespace hierarkis.
Syntax
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'
Menyalin direktori
Gunakan sintaks URL yang sama (blob.core.windows.net) untuk akun yang memiliki namespace hierarkis.
Syntax
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
Nota
Contoh ini menambahkan --recursive bendera untuk menyalin file di semua subdirektori.
Menyalin konten direktori
Anda dapat menyalin konten direktori tanpa menyalin direktori yang berisi itu sendiri dengan menggunakan simbol kartubebas (*).
Syntax
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
Menyalin wadah Cloud Storage
Gunakan sintaks URL yang sama (blob.core.windows.net) untuk akun yang memiliki namespace hierarkis.
Syntax
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
Menyalin semua bucket dalam proyek Google Cloud
Pertama, atur GOOGLE_CLOUD_PROJECT ke ID proyek proyek Google Cloud Anda.
Gunakan sintaks URL yang sama (blob.core.windows.net) untuk akun yang memiliki namespace hierarkis.
Syntax
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
Menyalin subset wadah di proyek Google Cloud
Pertama, atur GOOGLE_CLOUD_PROJECT ke ID proyek proyek Google Cloud Anda.
Salin subset wadah dengan menggunakan simbol kartubebas (*) dalam nama wadah. Gunakan sintaks URL yang sama (blob.core.windows.net) untuk akun yang memiliki namespace hierarkis.
Syntax
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
Menangani perbedaan dalam aturan penamaan wadah
Google Cloud Storage memiliki serangkaian konvensi penamaan yang berbeda untuk nama wadah dibandingkan dengan kontainer blob Azure. Anda dapat membaca tentang mereka di sini. Jika Anda memilih untuk menyalin sekelompok wadah ke akun penyimpanan Azure, operasi salin mungkin gagal karena perbedaan penamaan.
AzCopy menangani tiga masalah paling umum yang dapat muncul: bucket yang berisi titik, bucket yang berisi tanda hubung berturut-turut, dan bucket yang berisi garis bawah. Nama wadah Google Cloud Storage dapat berisi tanda titik dan tanda hubung berturut-turut, tetapi kontainer di Azure tidak dapat. AzCopy mengganti titik dengan tanda hubung dan tanda hubung berturut-turut dengan angka yang mewakili jumlah tanda hubung berturut-turut (misalnya: wadah bernama my----bucket menjadi my-4-bucket). Jika nama wadah memiliki garis bawah (_), maka AzCopy mengganti garis bawah dengan tanda hubung. Misalnya, wadah bernama my_bucket menjadi my-bucket.
Menangani perbedaan dalam aturan penamaan objek
Google Cloud Storage memiliki serangkaian konvensi penamaan yang berbeda untuk nama objek dibandingkan dengan blob Azure. Anda dapat membaca tentang mereka di sini.
Azure Storage tidak mengizinkan nama objek (atau segmen apa pun di jalur direktori virtual) berakhir dengan titik berikutnya (misalnya my-bucket...). Titik di akhir dihilangkan saat operasi penyalinan dilakukan.
Menangani perbedaan dalam metadata objek
Google Cloud Storage dan Azure memungkinkan serangkaian karakter yang berbeda dalam nama kunci objek. Anda dapat membaca metadata di Google Cloud Storage di sini. Di sisi Azure, kunci objek blob mematuhi aturan penamaan untuk pengidentifikasi C#.
Sebagai bagian dari perintah AzCopy copy , Anda dapat memberikan nilai untuk bendera opsional s2s-handle-invalid-metadata yang menentukan bagaimana Anda ingin menangani file di mana metadata file berisi nama kunci yang tidak kompatibel. Tabel berikut ini menjelaskan setiap nilai bendera.
| Nilai penanda | Description |
|---|---|
| KecualikanJikaTidakValid | (Opsi default) Metadata tidak disertakan dalam objek yang ditransfer. AzCopy mencatat peringatan. |
| GagalJikaTidakValid | Objek tidak disalin. AzCopy mencatat kesalahan di dalam log dan menyertakan kesalahan tersebut dalam jumlah kegagalan yang muncul dalam ringkasan transfer. |
| GantiNamaJikaTidakValid | AzCopy menyelesaikan kunci metadata yang tidak valid, dan menyalin objek ke Azure menggunakan pasangan nilai kunci metadata yang diselesaikan. Untuk mempelajari langkah-langkah apa yang diambil AzCopy untuk mengganti nama kunci objek, lihat bagian Cara AzCopy mengganti nama kunci objek . Jika AzCopy tidak dapat mengganti nama kunci, maka objek tidak disalin. |
Cara AzCopy mengganti nama kunci objek
AzCopy melakukan langkah-langkah berikut:
Mengganti karakter yang tidak valid dengan '_'.
Menambahkan string
rename_ke awal kunci baru yang valid.Kunci ini akan digunakan untuk menyimpan nilai metadata asli.
Menambahkan string
rename_key_ke awal kunci baru yang valid. Kunci ini akan digunakan untuk menyimpan metadata asli untuk kunci yang tidak valid. Anda dapat menggunakan kunci ini untuk mencoba memulihkan metadata di sisi Azure karena kunci metadata dipertahankan sebagai nilai pada layanan penyimpanan Blob.
Tentukan jenis sumber dan tujuan
AzCopy menggunakan --from-to parameter untuk secara eksplisit menentukan jenis sumber daya sumber dan tujuan ketika deteksi otomatis mungkin gagal seperti dalam skenario pemipaan atau emulator. Ini membantu AzCopy memahami konteks transfer dan mengoptimalkannya. Anda dapat mengatur parameter ini ke GCPBlobuntuk secara eksplisit menunjukkan bahwa perintah menyalin dari Google Cloud Storage ke Azure Blob Storage.
Langkah selanjutnya
Temukan contoh lainnya dalam artikel ini:
- Contoh: Unggah
- contoh: Unduh
- Contoh: Menyalin antar akun
- Contoh: Menyinkronkan
- Contoh: Wadah Amazon S3
- Contoh: Azure Files
Lihat artikel ini untuk mengonfigurasi pengaturan, mengoptimalkan performa, dan memecahkan masalah: