Bagikan melalui


Menyinkronkan dengan penyimpanan Azure Blob dengan menggunakan AzCopy

Anda dapat menyinkronkan penyimpanan lokal dengan penyimpanan Azure Blob dengan 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 dengan yang lain. Sinkronisasi adalah salah satu cara. 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 hierarkis.

Nota

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

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

Mulai sekarang!

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 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://<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 mengubah perilaku tersebut untuk menggunakan hash MD5 alih-alih tanda waktu terakhir yang dimodifikasi dengan menggunakan penanda --compare-hash. Atur --delete-destination bendera opsional ke nilai true atau prompt untuk menghapus file di direktori tujuan jika file tersebut tidak lagi ada di direktori sumber.

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

  • Jika Anda berencana untuk mengatur --delete-destination ke prompt atau false, pertimbangkan menggunakan perintah salin alih-alih perintah sinkronisasi dan mengatur parameter --overwrite ke ifSourceNewer. Perintah salin mengonsumsi lebih sedikit memori dan menimbulkan lebih sedikit biaya penagihan karena operasi salin tidak perlu 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 waktu yang signifikan, hindari memodifikasi file pada lokasi 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 --delete-destination=prompt|true bendera.

Memperbarui kontainer dengan perubahan pada sistem file lokal

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

Petunjuk / Saran

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

Sintaksis

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, sistem file lokal adalah tujuan, dan kontainer adalah sumbernya.

Petunjuk / Saran

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

Sintaksis

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 dalam kontainer lain

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

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

Petunjuk / Saran

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

Sintaksis

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. Direktori kedua adalah tujuan.

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

Petunjuk / Saran

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

Sintaksis

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

Memperbarui kontainer dengan perubahan dalam kontainer lain dengan menggunakan token SAS

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

Jika Anda memberikan token SAS, pastikan Anda menggunakan token SAS yang sesuai dengan akun penyimpanan sumber dan tujuan saat menggunakan sinkronisasi azcopy.

Sintaksis

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>/<destination-SAS-token>' --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/?sv=2018-03-28&ss=qrdu&dst=mco&kp=rwdlapuc&se=2019-07-04T05:30:08Z&st=2019-07-03T21:31:10Z&spr=https&sig=CAfhgnc9gdGktvB=yzx9CAjMKeeN678yiyFwdNU092JC8%6D' --recursive

Petunjuk / Saran

Jika menyalin sejumlah besar data, Anda dapat menggunakan Azure Storage Explorer.

Untuk memverifikasi ukuran data yang Anda salin, pada menu bilah atas, pilih Lainnya ->Statistik Folder untuk mendapatkan detail direktori, termasuk ukuran dalam byte.

Menyinkronkan dengan bendera opsional

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

Skenario Bendera
Tentukan seberapa ketat hash MD5 harus divalidasi saat mengunduh. --check-md5=[NoCheck (TidakPeriksa)|LogOnly (HanyaCatat)|FailIfDifferent (GagalJikaBerbeda)|FailIfDifferentOrMissing (GagalJikaBerbedaAtauHilang)]
Kecualikan file berdasarkan pola. --exclude-path (mengecualikan jalur)
Tentukan seberapa detail Anda ingin entri log terkait sinkronisasi Anda menjadi. --log-level=[WARNING|KESALAHAN|INFO|TIDAK ADA]
Tentukan cara menyalin file vhd. --blob-type=BlockBlob --include-pattern "*.vhd" atau --blob-type=BlockBlob

Untuk daftar lengkap bendera, lihat opsi.

Nota

--recursive flag diatur ke true secara bawaan. --exclude-pattern dan --include-pattern flags hanya berlaku untuk nama file dan bukan pada bagian lain dari path file.

Langkah berikutnya

Temukan contoh lainnya dalam artikel ini:

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