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 Amazon Web Services (AWS) S3 ke Azure Blob Storage dengan menggunakan AzCopy.
Nota
AzCopy mendukung URL dengan gaya standar yang dihosting secara virtual atau gaya jalur yang ditentukan oleh AWS. Sebagai contoh: https://bucket.s3.amazonaws.com atau https://s3.amazonaws.com/bucket.
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 AWS S3, gunakan kunci akses AWS dan kunci akses rahasia.
Mengotorisasi dengan Azure Storage
Lihat artikel Mulai menggunakan AzCopy untuk mengunduh AzCopy, dan pilih bagaimana Anda akan memberikan kredensial otorisasi ke layanan penyimpanan.
Nota
Contoh dalam artikel ini mengasumsikan bahwa Anda mengautentikasi identitas Anda dengan menggunakan AzCopy login perintah . AzCopy kemudian menggunakan akun Microsoft Entra Anda untuk mengotorisasi akses ke data di penyimpanan Blob.
Jika Anda lebih memilih menggunakan token SAS untuk otorisasi akses ke data blob, Anda dapat menambahkan token tersebut ke URL sumber daya di setiap perintah AzCopy.
Misalnya: https://mystorageaccount.blob.core.windows.net/mycontainer?<SAS-token>.
Mengotorisasi dengan AWS S3
Kumpulkan kunci akses AWS dan kunci akses rahasia Anda, lalu atur variabel lingkungan ini:
| Sistem operasi | Perintah |
|---|---|
| Windows | PowerShell:$env:AWS_ACCESS_KEY_ID=<access-key>$env:AWS_SECRET_ACCESS_KEY=<secret-access-key> Dalam command prompt, gunakan: set AWS_ACCESS_KEY_ID=<access-key>set AWS_SECRET_ACCESS_KEY=<secret-access-key> |
| Linux | export AWS_ACCESS_KEY_ID=<access-key>export AWS_SECRET_ACCESS_KEY=<secret-access-key> |
| macOS | export AWS_ACCESS_KEY_ID=<access-key>export AWS_SECRET_ACCESS_KEY=<secret-access-key> |
Kredensial ini digunakan untuk menghasilkan URL yang telah ditandatangani sebelumnya yang digunakan untuk menyalin objek.
Menyalin objek, direktori, dan wadah
AzCopy menggunakan PUT Block From URL API, sehingga data disalin langsung antara AWS S3 dan server penyimpanan. Operasi salin ini tidak menggunakan bandwidth jaringan komputer Anda.
Petunjuk / Saran
Contoh dalam bagian ini mengapit argumen jalur dengan menggunakan 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.
Sintaksis
azcopy copy 'https://s3.amazonaws.com/<bucket-name>/<object-name>' 'https://<storage-account-name>.blob.core.windows.net/<container-name>/<blob-name>'
Contoh
azcopy copy 'https://s3.amazonaws.com/mybucket/myobject' 'https://mystorageaccount.blob.core.windows.net/mycontainer/myblob'
Nota
Contoh dalam artikel ini menggunakan URL gaya path untuk bucket AWS S3 (Misalnya: http://s3.amazonaws.com/<bucket-name>).
Anda juga dapat menggunakan URL gaya yang dihosting virtual (Misalnya: http://bucket.s3.amazonaws.com).
Untuk mempelajari selengkapnya tentang hosting virtual bucket, lihat Hosting Virtual Bucket.
Menyalin direktori
Gunakan sintaks URL yang sama (blob.core.windows.net) untuk akun yang memiliki namespace hierarkis.
Sintaksis
azcopy copy 'https://s3.amazonaws.com/<bucket-name>/<directory-name>' 'https://<storage-account-name>.blob.core.windows.net/<container-name>/<directory-name>' --recursive=true
Contoh
azcopy copy 'https://s3.amazonaws.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 (*).
Sintaksis
azcopy copy 'https://s3.amazonaws.com/<bucket-name>/<directory-name>/*' 'https://<storage-account-name>.blob.core.windows.net/<container-name>/<directory-name>' --recursive=true
Contoh
azcopy copy 'https://s3.amazonaws.com/mybucket/mydirectory/*' 'https://mystorageaccount.blob.core.windows.net/mycontainer/mydirectory' --recursive=true
Menyalin wadah
Gunakan sintaks URL yang sama (blob.core.windows.net) untuk akun yang memiliki namespace hierarkis.
Sintaksis
azcopy copy 'https://s3.amazonaws.com/<bucket-name>' 'https://<storage-account-name>.blob.core.windows.net/<container-name>' --recursive=true
Contoh
azcopy copy 'https://s3.amazonaws.com/mybucket' 'https://mystorageaccount.blob.core.windows.net/mycontainer' --recursive=true
Salin semua bucket di semua wilayah
Gunakan sintaks URL yang sama (blob.core.windows.net) untuk akun yang memiliki namespace hierarkis.
Sintaksis
azcopy copy 'https://s3.amazonaws.com/' 'https://<storage-account-name>.blob.core.windows.net' --recursive=true
Contoh
azcopy copy 'https://s3.amazonaws.com' 'https://mystorageaccount.blob.core.windows.net' --recursive=true
Menyalin semua bucket di wilayah S3 tertentu
Gunakan sintaks URL yang sama (blob.core.windows.net) untuk akun yang memiliki namespace hierarkis.
Sintaksis
azcopy copy 'https://s3-<region-name>.amazonaws.com/' 'https://<storage-account-name>.blob.core.windows.net' --recursive=true
Contoh
azcopy copy 'https://s3-rds.eu-north-1.amazonaws.com' 'https://mystorageaccount.blob.core.windows.net' --recursive=true
Menangani perbedaan dalam aturan penamaan objek
AWS S3 menggunakan 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 dua permasalahan paling umum yang dapat muncul: bucket yang berisi titik dan bucket yang berisi tanda hubung berturut-turut. Nama bucket AWS S3 dapat berisi titik dan tanda hubung berurutan, tetapi kontainer di Azure tidak bisa. AzCopy mengganti titik dengan tanda hubung dan tanda hubung berturut-turut dengan angka yang menunjukkan jumlah tanda hubung berturut-turut (misalnya, sebuah bucket bernama my----bucket menjadi my-4-bucket).
Selain itu, sebagai AzCopy menyalin file, AzCopy memeriksa tabrakan penamaan dan berupaya menyelesaikannya. Misalnya, jika ada wadah dengan nama bucket-name dan bucket.name, AzCopy memproses wadah bernama bucket.name terlebih dahulu menjadi bucket-name dan kemudian menjadi bucket-name-2.
Menangani perbedaan dalam metadata objek
AWS S3 dan Azure memungkinkan serangkaian karakter yang berbeda dalam nama kunci objek. Anda dapat membaca tentang karakter yang digunakan AWS S3 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 | Deskripsi |
|---|---|
| KecualikanJikaTidakValid | (Opsi default) Metadata tidak disertakan dalam objek yang ditransfer. AzCopy mencatat peringatan. |
| GagalJikaTidakValid | Objek tidak disalin. AzCopy mencatat kesalahan dan menyertakan kesalahan tersebut dalam jumlah kegagalan yang muncul dalam ringkasan transfer. |
| Ganti Nama Jika Tidak Valid | 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 digunakan untuk menyimpan nilai metadata asli.
Menambahkan string
rename_key_ke awal kunci baru yang valid. Kunci ini digunakan untuk menyimpan kunci metadata asli 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 saat deteksi otomatis mungkin gagal, seperti dalam skenario perpipaan atau emulator. Parameter ini membantu AzCopy memahami konteks transfer dan mengoptimalkannya. Atur parameter ini ke S3Blob untuk secara eksplisit menunjukkan bahwa perintah menyalin dari Amazon S3 ke Azure Blob Storage.
Langkah berikutnya
Temukan contoh lainnya dalam artikel ini:
- Contoh: Mengunggah
- Contoh: Mengunduh
- Contoh: Menyalin antar akun
- Contoh: Sinkronisasi
- Contoh: Google Cloud Storage
- Contoh: Azure Files
Lihat artikel ini untuk mengonfigurasi pengaturan, mengoptimalkan performa, dan memecahkan masalah: