Menyinkronkan dengan penyimpanan Blob Azure menggunakan AzCopy

Anda dapat menyinkronkan penyimpanan lokal dengan penyimpanan Blob Azure menggunakan utilitas baris perintah AzCopy v10.

Anda dapat menyinkronkan konten sistem file lokal dengan kontainer blob. Anda juga dapat menyinkronkan kontainer dan direktori virtual satu sama lain. Sinkronisasi adalah salah satu caranya. Dengan kata lain, Anda memilih mana dari kedua titik akhir ini yang merupakan sumber dan mana yang menjadi tujuannya. Sinkronisasi juga menggunakan API server ke server. Contoh yang disajikan di bagian ini juga berfungsi dengan akun yang memiliki namespace hierarki.

Catatan

Rilis AzCopy saat ini tidak disinkronkan antara sumber dan tujuan lain (Misalnya: Penyimpanan file atau bucket Amazon Web Services (AWS) S3).

Untuk melihat contoh untuk tipe tugas lain seperti mengunggah file, mengunduh blob, atau menyalin blob antara akun, lihat tautan yang disajikan di bagian Langkah Berikutnya dalam artikel ini.

Mulai

Lihat artikel Mulai menggunakan AzCopy untuk mengunduh AzCopy dan pelajari tentang cara memberikan informasi masuk otorisasi ke layanan penyimpanan.

Catatan

Contoh dalam artikel ini mengasumsikan bahwa Anda telah memberikan kredensial otorisasi dengan menggunakan ID Microsoft Entra.

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. Sebagai contoh: 'https://<storage-account-name>.blob.core.windows.net/<container-name><SAS-token>'.

Panduan

Secara default, perintah sinkronisasi membandingkan nama file dan tanda waktu terakhir yang dimodifikasi. Anda dapat mengambil alih perilaku tersebut untuk menggunakan hash MD5 alih-alih tanda waktu terakhir yang dimodifikasi dengan menggunakan --compare-hash bendera . Atur bendera opsional --delete-destination ke nilai true atau prompt untuk menghapus file di direktori tujuan jika file tersebut tidak ada lagi di direktori sumber.

  • Jika Anda mengatur bendera --delete-destination menjadi true, AzCopy akan menghapus file tanpa memberikan perintah. Jika Anda ingin perintah muncul sebelum AzCopy menghapus file, atur bendera --delete-destination menjadi prompt.

  • Jika Anda berencana untuk mengatur bendera --delete-destination menjadi prompt atau false, pertimbangkan untuk menggunakan perintah salin bukan perintah sinkronisasi lalu atur parameter --overwrite ke ifSourceNewer. Perintah salin menggunakan lebih sedikit memori dan menimbulkan lebih sedikit biaya tagihan karena operasi salin tidak harus mengindeks sumber atau tujuan sebelum memindahkan file.

  • Jika Anda tidak berencana untuk menggunakan --compare-hash bendera, maka komputer tempat Anda menjalankan perintah sinkronisasi harus memiliki jam sistem yang akurat karena waktu terakhir yang dimodifikasi sangat penting dalam menentukan apakah file harus ditransfer. Jika sistem Anda memiliki penyimpangan jam yang signifikan, hindari mengubah file di tujuan terlalu dekat dengan waktu yang Anda rencanakan untuk menjalankan perintah sinkronisasi.

  • AzCopy menggunakan API server-ke-server untuk menyinkronkan data antar akun penyimpanan. Itu berarti bahwa data disalin langsung di antara server penyimpanan. Namun, AzCopy memang menyiapkan dan memantau setiap transfer, dan untuk akun penyimpanan yang lebih besar (Misalnya, akun yang berisi jutaan blob), AzCopy mungkin memerlukan sejumlah besar sumber daya komputasi untuk menyelesaikan tugas-tugas ini. Oleh karena itu, jika Anda menjalankan AzCopy dari Komputer Virtual (VM), pastikan bahwa VM memiliki cukup core/memori untuk menangani beban.

  • Untuk mencegah penghapusan yang tidak disengaja, pastikan untuk mengaktifkan fitur penghapusan sementara sebelum Anda menggunakan bendera --delete-destination=prompt|true.

Unggah kontainer dengan perubahan pada sistem file lokal

Dalam hal ini, kontainer adalah tujuan, dan sistem file lokal adalah sumbernya.

Tip

Contoh ini menyertakan 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 ('').

Sintaks

azcopy sync '<local-directory-path>' 'https://<storage-account-name>.blob.core.windows.net/<container-name>' --recursive

Contoh

azcopy sync 'C:\myDirectory' 'https://mystorageaccount.blob.core.windows.net/mycontainer' --recursive

Perbarui sistem file lokal dengan perubahan pada kontainer

Dalam hal ini, file sistem lokal adalah tujuan, dan kontainer adalah sumbernya.

Tip

Contoh ini menyertakan 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 ('').

Sintaks

azcopy sync 'https://<storage-account-name>.blob.core.windows.net/<container-name>' 'C:\myDirectory' --recursive

Contoh

azcopy sync 'https://mystorageaccount.blob.core.windows.net/mycontainer' 'C:\myDirectory' --recursive

Memperbarui kontainer dengan perubahan di kontainer lain

Kontainer pertama yang muncul dalam perintah ini adalah sumbernya. Yang kedua adalah tujuannya.

Jika Anda memberikan kredensial otorisasi dengan menggunakan ID Microsoft Entra, pastikan Anda telah menyiapkan peran yang tepat di akun sumber dan tujuan Anda. Lihat Opsi 1: Gunakan ID Microsoft Entra.

Tip

Contoh ini menyertakan 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 ('').

Sintaks

azcopy sync 'https://<source-storage-account-name>.blob.core.windows.net/<container-name>/<SAS-token>' 'https://<destination-storage-account-name>.blob.core.windows.net/<container-name>' --recursive

Contoh

azcopy sync 'https://mysourceaccount.blob.core.windows.net/mycontainer?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D' 'https://mydestinationaccount.blob.core.windows.net/mycontainer' --recursive

Memperbarui direktori dengan perubahan pada direktori di kontainer lain

Direktori pertama yang muncul dalam perintah ini adalah sumbernya. Yang kedua adalah tujuannya.

Jika Anda memberikan kredensial otorisasi dengan menggunakan ID Microsoft Entra, pastikan Anda telah menyiapkan peran yang tepat di akun sumber dan tujuan Anda. Lihat Opsi 1: Gunakan ID Microsoft Entra.

Tip

Contoh ini menyertakan 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 ('').

Sintaks

azcopy sync 'https://<source-storage-account-name>.blob.core.windows.net/<container-name>/<directory-name>/<SAS-token>' 'https://<destination-storage-account-name>.blob.core.windows.net/<container-name>/<directory-name>' --recursive

Contoh

azcopy sync 'https://mysourceaccount.blob.core.windows.net/<container-name>/myDirectory?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D' 'https://mydestinationaccount.blob.core.windows.net/mycontainer/myDirectory' --recursive

Melakukan sinkronisasi dengan bendera opsional

Anda dapat mengubah operasi sinkronisasi menggunakan bendera opsional. Berikut adalah beberapa contohnya.

Skenario Bendera
Tentukan seberapa ketat hash MD5 harus divalidasi saat mengunduh. --check-md5=[NoCheck|LogOnly|FailIfDifferent|FailIfDifferentOrMissing]
Mengecualikan file berdasarkan pola. --exclude-path
Menentukan seberapa detail Anda ingin entri log terkait sinkronisasi dibuat. --log-level=[WARNING|ERROR|INFO|NONE]

Untuk daftar lengkap bendera, lihat opsi.

Catatan

Bendera --recursive diatur ke true secara default. Bendera --exclude-pattern dan --include-pattern hanya berlaku untuk nama file dan bukan bagian lain dari jalur file.

Langkah berikutnya

Temukan contoh lainnya dalam artikel ini:

Lihat artikel ini untuk mengonfigurasi pengaturan, mengoptimalkan performa, dan memecahkan masalah: