All Products
Search
Document Center

Object Storage Service:sync (Sinkronisasi file OSS ke komputer lokal)

Last Updated:Feb 28, 2026

Anda dapat menjalankan perintah sync di ossutil untuk menyinkronkan objek yang disimpan di Object Storage Service (OSS) ke direktori lokal di komputer Anda.

Prasyarat

Sebelum menyinkronkan objek dari OSS ke komputer Anda, pastikan persyaratan berikut terpenuhi:

  • Izin: Anda memiliki izin oss:GetObject dan oss:ListObjects pada bucket sumber. Untuk informasi selengkapnya, lihat Lampirkan kebijakan kustom ke RAM user.

  • Versi ossutil: Mulai versi ossutil 1.6.16 dan yang lebih baru, Anda dapat langsung menggunakan ossutil sebagai nama biner di semua sistem operasi. Untuk versi sebelumnya, gunakan nama biner yang spesifik sesuai sistem operasi Anda. Untuk informasi selengkapnya, lihat Referensi perintah ossutil.

Cara kerja sync

Saat menjalankan perintah sync, ossutil memindai direktori sumber dan membandingkannya dengan direktori tujuan. Untuk setiap objek di sumber:

  • Jika objek tidak ada di tujuan, objek tersebut akan diunduh.

  • Jika objek sudah ada di tujuan, ossutil akan memberikan prompt untuk mengonfirmasi apakah objek tersebut akan ditimpa.

Untuk mengontrol perilaku penimpaan, gunakan opsi berikut:

  • -f, --force: Menimpa file yang sudah ada tanpa prompt.

  • -u, --update: Mengunduh objek hanya jika objek tersebut tidak ada di tujuan atau waktu modifikasi terakhir objek sumber lebih baru daripada file tujuan. Ini memungkinkan sinkronisasi inkremental yang efisien.

Batas jumlah file

Saat menjalankan perintah sync tanpa opsi --delete, tidak ada batasan jumlah file yang dapat disinkronkan. Jika Anda menyertakan --delete, Anda dapat menyinkronkan hingga 1 juta file sekaligus. Melebihi batas ini akan mengembalikan error: over max sync numbers 1000000.

Perbedaan antara sync dan cp

Perilakusynccp
Rekursif secara defaultYa. Secara otomatis menyertakan semua objek dan subdirektori.Tidak. Memerlukan opsi -r untuk operasi rekursif.
Direktori backupMendukung opsi --backup-dir untuk membuat backup file yang hanya ada di tujuan sebelum menghapusnya.Tidak didukung.
Unduhan berbasis versiTidak mendukung --version-id. Tidak dapat menyinkronkan versi sebelumnya dari objek di bucket yang memiliki Pengendalian versi.Mendukung --version-id.

Selain perbedaan tersebut, perintah sync dan cp bekerja dengan cara yang serupa. Untuk informasi selengkapnya tentang cp, lihat Unduh objek.

Sintaksis perintah

ossutil sync cloud_url file_url
  [-f --force]
  [-u --update]
  [--maxdownspeed <value>]
  [--delete]
  [--backup-dir <value>]
  [--enable-symlink-dir]
  [--disable-all-symlink]
  [--disable-ignore-error]
  [--only-current-dir]
  [--output-dir <value>]
  [--bigfile-threshold <value>]
  [--part-size <value>]
  [--checkpoint-dir <value>]
  [--range <value>]
  [--encoding-type <value>]
  [--snapshot-path <value>]
  [--include <value>]
  [--exclude <value>]
  [--disable-crc64]
  [--payer <value>]
  [-j, --job <value>]
  [--parallel <value>]
  [--retry-times <value>]

Parameter

ParameterDeskripsi
cloud_urlURL direktori sumber di OSS. Format: oss://bucketname/path/. Contoh: oss://examplebucket/exampledir/. Jika nilai tidak diakhiri dengan garis miring maju (/), ossutil akan menambahkannya secara otomatis.
file_urlJalur ke direktori tujuan lokal. Contoh: /localfolder/ di Linux, D:\localfolder\ di Windows.

Opsi

Perilaku sinkronisasi

OpsiDeskripsi
-f, --forceMemaksa operasi tanpa meminta konfirmasi. Secara default, ossutil meminta konfirmasi sebelum menimpa file yang sudah ada.
-u, --updateMenyinkronkan objek hanya jika objek tersebut tidak ada di tujuan atau waktu modifikasi terakhir objek sumber lebih baru daripada file tujuan. Gunakan opsi ini untuk melakukan Sinkronisasi inkremental dan melewati file yang sudah mutakhir.
--deleteMenghapus file dari tujuan yang tidak ada di sumber, sehingga tujuan menjadi cerminan persis dari sumber. Peringatan: Untuk mencegah kehilangan data secara tidak sengaja, kami menyarankan Anda mengaktifkan Pengendalian versi untuk bucket sebelum menggunakan opsi ini. Saat --delete ditentukan, Anda dapat menyinkronkan maksimal 1 juta file sekaligus.
--backup-dir \Menentukan direktori untuk membuat backup file yang ada di tujuan tetapi tidak ada di sumber. Alih-alih menghapus file tersebut secara permanen, ossutil memindahkannya ke direktori backup. Gunakan opsi ini bersama --delete sebagai alternatif yang lebih aman daripada penghapusan langsung.
--only-current-dirHanya menyinkronkan objek di direktori OSS yang ditentukan. Subdirektori dan isinya dilewati.

Penyaringan file

OpsiDeskripsi
--include \Hanya menyertakan objek yang namanya sesuai dengan kondisi yang ditentukan. Anda dapat menentukan opsi ini beberapa kali untuk mendefinisikan beberapa aturan penyertaan. Untuk informasi selengkapnya, lihat Opsi --include dan --exclude.
--exclude \Mengecualikan objek yang namanya sesuai dengan kondisi yang ditentukan. Anda dapat menentukan opsi ini beberapa kali untuk mendefinisikan beberapa aturan pengecualian. Untuk informasi selengkapnya, lihat Opsi --include dan --exclude.

Kinerja dan konkurensi

OpsiDeskripsi
-j, --job \Jumlah tugas konkuren untuk operasi multi-objek. Nilai valid: 1 hingga 10000. Nilai default: 3. Tingkatkan nilai ini saat menyinkronkan banyak file kecil untuk meningkatkan throughput.
--parallel \Jumlah tugas konkuren untuk operasi single-object (seperti unduhan multipart untuk file besar). Nilai valid: 1 hingga 10000. Jika Anda tidak menentukan opsi ini, ossutil menentukan nilainya secara otomatis berdasarkan jenis operasi dan ukuran objek. Tingkatkan nilai ini saat mengunduh sedikit file besar.
--maxdownspeed \Kecepatan unduh maksimum. Satuan: KB/s. Nilai default: 0, yang berarti kecepatan unduh tidak dibatasi.
--snapshot-path \Menentukan direktori untuk menyimpan Snapshot objek yang disinkronkan. Pada sinkronisasi berikutnya, ossutil membaca Snapshot untuk mengidentifikasi objek yang telah berubah dan hanya menyinkronkan objek tersebut. Hal ini dapat mempercepat proses sinkronisasi berulang pada direktori yang sama secara signifikan.

Unduhan yang dapat dilanjutkan

OpsiDeskripsi
--bigfile-threshold \Ambang batas ukuran objek di atas mana ossutil menggunakan unduhan yang dapat dilanjutkan. Jika objek melebihi ukuran ini, objek tersebut diunduh dalam beberapa bagian sehingga unduhan dapat dilanjutkan dari titik terakhir setelah kegagalan. Satuan: byte. Nilai default: 100 MB. Nilai valid: 0 hingga 9223372036854775807.
--part-size \Ukuran setiap bagian dalam unduhan yang dapat dilanjutkan. Satuan: byte. Secara default, ossutil menentukan ukuran bagian berdasarkan ukuran objek. Nilai valid: 1 hingga 9223372036854775807.
--checkpoint-dir \Direktori tempat ossutil menyimpan informasi File titik pemeriksaan untuk unduhan yang dapat dilanjutkan. Jika unduhan gagal, ossutil menggunakan data checkpoint untuk melanjutkan unduhan. Direktori default: .ossutil_checkpoint di direktori kerja saat ini. Jika unduhan berhasil diselesaikan, ossutil menghapus direktori checkpoint. Pastikan direktori yang Anda tentukan dapat dihapus.

Penanganan tautan simbolik

OpsiDeskripsi
--enable-symlink-dirMengikuti tautan simbolik yang mengarah ke subdirektori dan menyinkronkan isinya.
--disable-all-symlinkMengabaikan semua tautan simbolik. File dan subdirektori yang dirujuk oleh tautan simbolik tidak disinkronkan.

Integritas data dan penanganan error

OpsiDeskripsi
--disable-crc64Menonaktifkan verifikasi CRC-64. Secara default, ossutil melakukan pemeriksaan CRC-64 untuk memverifikasi integritas data setelah mengunduh setiap objek.
--disable-ignore-errorMenghentikan operasi sync ketika terjadi error selama operasi batch. Secara default, ossutil mengabaikan error dan melanjutkan pemrosesan objek yang tersisa. Detail error ditulis ke direktori output.
--retry-times \Jumlah kali ossutil mencoba ulang operasi yang gagal. Nilai default: 10. Nilai valid: 1 hingga 500.

Output dan encoding

OpsiDeskripsi
--output-dir \Direktori tempat ossutil menyimpan file output, termasuk laporan error yang dihasilkan selama sinkronisasi batch. Nilai default: subdirektori ossutil_output di direktori kerja saat ini.
--encoding-type \Metode encoding untuk nama objek. Tetapkan nilai ke url untuk melakukan URL-encode pada nama objek. Jika Anda tidak menentukan opsi ini, nama objek tidak di-encode.
--range \Mengunduh rentang byte tertentu dari setiap objek dan menyimpannya sebagai file baru. Anda dapat menentukan nilai dalam salah satu format berikut: 3-9 (byte 3 hingga byte 9), 3- (byte 3 hingga akhir objek), -9 (byte 0 hingga byte 9). Nilai awal minimum adalah 0.

Penagihan

OpsiDeskripsi
--payer \Menentukan pihak yang membayar biaya permintaan dan traffic. Tetapkan opsi ini ke requester jika Anda ingin pihak peminta membayar biaya tersebut, bukan Pemilik bucket. Untuk informasi selengkapnya tentang mode bayar-per-permintaan, lihat Pay-by-requester.

Contoh

Contoh berikut menggunakan bucket bernama examplebucket yang berisi direktori bernama localdir. Direktori localdir berisi dua objek (a.txt dan b.txt) dan satu subdirektori (C). Di komputer Anda, direktori destdir berisi satu file bernama d.txt.

examplebucket           Local root directory
└── localdir/             └── destdir/
       ├── a.txt                └── d.txt
       ├── b.txt
       └── C/

Contoh 1: Sinkronisasi dasar

Sinkronkan direktori localdir dari examplebucket ke direktori lokal destdir:

ossutil sync oss://examplebucket/localdir/ destdir/

Setelah sinkronisasi, objek a.txt, b.txt, dan subdirektori C ditambahkan ke destdir. File yang sudah ada d.txt dipertahankan karena opsi --delete tidak digunakan.

examplebucket           Local root directory
└── localdir/             └── destdir/
       ├── a.txt                ├── a.txt
       ├── b.txt                ├── b.txt
       └── C/                   ├── d.txt
                                └── C/

Contoh 2: Sinkronisasi dengan penghapusan dan backup

Sinkronkan localdir ke destdir dan hapus file dari destdir yang tidak ada di localdir. Pindahkan file yang dihapus ke direktori backup alih-alih menghapusnya secara permanen:

ossutil sync oss://examplebucket/localdir/ destdir/ --delete --backup-dir backup/

Setelah sinkronisasi, destdir hanya berisi objek dari localdir. File d.txt, yang hanya ada di destdir, dipindahkan ke direktori backup:

examplebucket              Local root directory
└── localdir/               ├── destdir/
       ├── a.txt            │     ├── a.txt
       ├── b.txt            │     ├── b.txt
       └── C/               │     └── C/
                            └── backup/
                                   └──d.txt

Contoh 3: Sinkronisasi hanya jenis file tertentu

Sinkronkan hanya file .txt dari localdir, mengecualikan semua jenis file lainnya:

ossutil sync oss://examplebucket/localdir/ destdir/ --include "*.txt"

Contoh 4: Mengecualikan jenis file tertentu

Sinkronkan semua objek dari localdir kecuali file .log:

ossutil sync oss://examplebucket/localdir/ destdir/ --exclude "*.log"

Contoh 5: Sinkronisasi inkremental

Sinkronkan hanya objek yang baru atau telah dimodifikasi sejak sinkronisasi terakhir:

ossutil sync oss://examplebucket/localdir/ destdir/ -u

Dengan opsi --update (-u), ossutil melewati objek yang waktu modifikasi terakhirnya di OSS sama dengan atau lebih lama daripada file lokal yang sesuai.

Contoh 6: Sinkronisasi hanya direktori tingkat atas

Sinkronkan hanya objek yang berada langsung di localdir, tanpa merekursif ke subdirektori:

ossutil sync oss://examplebucket/localdir/ destdir/ --only-current-dir

Contoh 7: Percepat sinkronisasi berulang dengan snapshot

Gunakan --snapshot-path untuk menyimpan status sinkronisasi. Pada eksekusi berikutnya, ossutil membaca snapshot untuk mengidentifikasi objek yang berubah dan hanya menyinkronkan objek tersebut, sehingga mengurangi waktu yang diperlukan untuk sinkronisasi berulang pada direktori yang sama:

ossutil sync oss://examplebucket/localdir/ destdir/ --snapshot-path /tmp/oss-sync-snapshot/

Contoh 8: Sesuaikan konkurensi untuk sinkronisasi skala besar

Saat menyinkronkan direktori yang berisi file kecil dan besar, sesuaikan --job dan --parallel untuk mengoptimalkan throughput:

  • --job mengontrol jumlah objek yang diproses secara bersamaan. Tingkatkan nilai ini saat menyinkronkan banyak file kecil.

  • --parallel mengontrol jumlah bagian dari satu objek besar yang diunduh secara bersamaan. Tingkatkan nilai ini saat mengunduh beberapa file besar.

ossutil sync oss://examplebucket/data/ /local/data/ --job 10 --parallel 5

Untuk membatasi kecepatan unduh hingga 10.240 KB/s (10 MB/s) dan menghindari saturasi lebar pita jaringan Anda:

ossutil sync oss://examplebucket/data/ /local/data/ --maxdownspeed 10240

Output sukses

Saat sinkronisasi berhasil diselesaikan, ossutil mengembalikan output yang mirip dengan berikut. Perhatikan bahwa output menggunakan "upload" terlepas dari arah sinkronisasi; ini adalah format output standar ossutil.

Succeed: Total num: 2, size: 750,081. OK num: 2(upload 2 files).

average speed 1641000(byte/s)

Penanganan dan pemulihan error

Jika sinkronisasi gagal di tengah proses, Anda dapat menjalankan kembali perintah sync yang sama untuk melanjutkan. ossutil membandingkan sumber dan tujuan serta hanya menyinkronkan objek yang tidak berhasil diunduh pada proses sebelumnya.

Untuk file besar, ossutil secara default menggunakan unduhan yang dapat dilanjutkan (untuk objek yang lebih besar dari 100 MB). Informasi File titik pemeriksaan disimpan di direktori .ossutil_checkpoint, yang memungkinkan ossutil melanjutkan pengunduhan file besar dari bagian terakhir yang berhasil diunduh, bukan memulai dari awal.

Untuk menyesuaikan perilaku penanganan error:

  • --retry-times: Menetapkan jumlah percobaan ulang otomatis untuk setiap operasi yang gagal. Nilai default-nya adalah 10 kali percobaan ulang.

  • --disable-ignore-error: Secara default, ossutil mengabaikan error selama operasi batch dan melanjutkan pemrosesan objek yang tersisa. Gunakan opsi ini untuk menghentikan operasi saat terjadi error. Detail error ditulis ke direktori output.

Opsi umum

Jika Anda perlu menyinkronkan objek dari bucket di wilayah berbeda atau yang dimiliki oleh Akun Alibaba Cloud berbeda, tentukan Titik akhir dan kredensial langsung dalam perintah:

OpsiDeskripsi
-eTitik akhir wilayah tempat bucket berada.
-iID AccessKey dari Akun Alibaba Cloud yang memiliki bucket tersebut.
-kRahasia AccessKey dari Akun Alibaba Cloud yang memiliki bucket tersebut.

Sebagai contoh, untuk menyinkronkan direktori bernama srcfolder dari bucket bernama examplebucket di wilayah China (Shanghai), yang dimiliki oleh Akun Alibaba Cloud berbeda:

ossutil sync oss://examplebucket/srcfolder/ examplefolder/ -e oss-cn-shanghai.aliyuncs.com -i yourAccessKeyID -k yourAccessKeySecret

Untuk informasi selengkapnya tentang opsi umum, lihat Opsi umum.