All Products
Search
Document Center

Object Storage Service:cp (copy objects)

Last Updated:Jun 13, 2026

Perintah cp di ossutil digunakan untuk menyalin objek, yaitu menduplikasi file dari bucket sumber ke bucket tujuan dalam wilayah yang sama atau ke direktori lain dalam bucket yang sama tanpa mengubah konten file.

Catatan penting

  • Untuk menyalin objek, Anda harus memiliki izin oss:GetObject, oss:ListObjects, dan oss:PutObject. Untuk informasi selengkapnya, lihat Grant custom permission policies to RAM users.

  • Hanya objek lengkap yang dapat disalin. Unggahan multi-bagian yang belum digabung tidak didukung.

  • Secara default, baik tag maupun atribut objek akan disalin. Gunakan opsi --copy-props untuk mengontrol cara penanganan atribut dan tag selama penyalinan.

  • Penyalinan lintas akun dan lintas wilayah tidak didukung. Untuk memigrasikan file antar akun atau wilayah, gunakan ossimport atau Data Online Migration.

  • Saat menggunakan opsi -u, --update, sistem mengirim setidaknya satu permintaan HEAD per file untuk membandingkan timestamp—bahkan jika file tujuan tidak ada. Dalam skenario dengan sedikit perubahan data, hal ini menghasilkan banyak permintaan yang tidak efisien, yang dapat menurunkan kinerja dan menimbulkan biaya permintaan tambahan. Evaluasi kasus penggunaan spesifik Anda secara hati-hati sebelum mengaktifkan opsi ini untuk menghindari konsumsi sumber daya yang tidak perlu.

Sintaks perintah

ossutil cp oss://src_bucket[/src_prefix] oss://dest_bucket[/dest_prefix] [flags]

Parameter

Tipe

Deskripsi

src_bucket

string

Nama bucket sumber.

src_prefix

string

Jalur direktori atau awalan dalam bucket sumber.

dest_bucket

string

Nama bucket tujuan.

dest_prefix

string

Jalur direktori atau awalan dalam bucket tujuan.

--acl

string

Tingkat kontrol akses untuk objek. Nilai yang valid:

  • private: private.

  • public-read: Akses baca publik.

  • public-read-write: Akses baca dan tulis publik.

  • Default: inherit bucket.

--bandwidth-limit

SizeSuffix

Membatasi bandwidth jaringan untuk mengontrol kecepatan transfer data. Nilai minimum adalah 1024 B/s. Satuan default adalah B/s.

Anda dapat menentukan satuan saat mengatur parameter ini. Satuan yang didukung meliputi B (bytes), K (kilobyte), M (megabyte), dan G (gigabyte). Misalnya, 50 M menetapkan batas menjadi 50 MB/s.

--bigfile-threshold

SizeSuffix

Ambang batas (dalam byte) untuk mengaktifkan unggah multi-bagian, unduh, atau salin untuk file besar. Nilai default: 104857600 (100 MiB).

--cache-control

string

Menentukan perilaku caching saat objek diunduh oleh browser web.

--checkers

int

Jumlah thread checker konkuren. Default: 16.

--checkpoint-dir

string

Direktori untuk menyimpan data checkpoint guna mendukung transfer yang dapat dilanjutkan. Default: .ossutil_checkpoint/.

--checksum

/

Hanya menyalin file sumber yang ukuran atau checksum-nya (jika tersedia) berbeda dari tujuan. Hanya berlaku untuk operasi salin objek-ke-objek.

--content-disposition

string

Menentukan format tampilan objek.

--content-encoding

string

Mendeklarasikan metode encoding yang digunakan untuk objek.

--content-type

string

Tipe MIME objek.

--copy-props

string

Mengontrol cara properti dan tag objek disalin selama operasi objek-ke-objek. Nilai yang didukung:

  • default (default): Menyalin properti dan tag objek. Properti objek mencakup content-type, content-language, content-encoding, content-disposition, cache-control, expires, dan metadata (metadata pengguna kustom).

  • metadata: Hanya menyalin properti objek.

  • none: Hanya menyalin data objek, mengabaikan properti dan tag.

-d, --dirs

string

Memproses file dan subdirektori langsung dalam direktori saat ini, tanpa menelusuri subdirektori lebih dalam secara rekursif.

--encoding-type

string

Tipe encoding untuk nama objek atau file input. Nilai yang valid: url.

--end-with

string

Mengembalikan objek yang berada sebelum atau sesuai dengan nilai yang ditentukan dalam urutan alfabetis.

--exclude

stringArray

Aturan pengecualian untuk jalur atau nama file.

--exclude-from

stringArray

Membaca aturan pengecualian dari file.

--expires

string

Menetapkan waktu kedaluwarsa absolut untuk konten yang di-cache.

--files-from

stringArray

Membaca daftar nama file sumber dari file, melewatkan baris kosong atau yang dikomentari. Hanya berlaku dalam skenario penyaringan.

--files-from-raw

stringArray

Membaca daftar nama file sumber dari file. Hanya berlaku dalam skenario penyaringan.

--filter

stringArray

Aturan penyaringan untuk jalur atau nama file.

--filter-from

stringArray

Membaca aturan penyaringan dari file.

-f, --force

/

Memaksa operasi tanpa meminta konfirmasi.

--ignore-existing

/

Melewatkan file yang sudah ada di tujuan.

--include

stringArray

Aturan inklusi untuk jalur atau nama file.

--include-from

stringArray

Membaca aturan inklusi dari file.

-j, --job

int

Jumlah pekerjaan konkuren. Default: 3.

Catatan

Opsi ini hanya berlaku bila digunakan bersama salah satu flag berikut: -f, --update, --size-only, atau --ignore-existing.

--list-objects

/

Menggunakan API ListObjects untuk mendaftar objek.

--max-size

SizeSuffix

Ukuran maksimum file yang akan ditransfer. Satuan default adalah byte. Anda dapat menambahkan sufiks: B|K|M|G|T|P (misalnya, 1K = 1024 B).

--metadata

strings

Metadata yang ditentukan pengguna untuk objek, ditentukan sebagai pasangan key=value.

--metadata-directive

string

Menentukan cara menetapkan metadata untuk objek tujuan. Nilai yang valid:

  • COPY

  • REPLACE

--metadata-exclude

stringArray

Aturan pengecualian untuk metadata objek.

--metadata-filter

stringArray

Aturan penyaringan untuk metadata objek.

--metadata-filter-from

stringArray

Membaca aturan penyaringan metadata dari file.

--metadata-include

stringArray

Aturan inklusi untuk metadata objek.

--min-age

Duration

Hanya menyalin file yang dimodifikasi sebelum interval waktu yang ditentukan. Satuan default adalah detik. Anda dapat menggunakan sufiks seperti h (jam). Contoh: 1h berarti 1 jam.

Catatan

--min-age 1h hanya menyalin file yang dimodifikasi satu jam yang lalu atau lebih awal.

--max-age

Duration

Hanya menyalin file yang dimodifikasi dalam interval waktu yang ditentukan. Satuan default adalah detik. Anda dapat menggunakan sufiks seperti h (jam). Contoh: 1h berarti 1 jam.

Catatan

--max-age 1h hanya menyalin file yang dimodifikasi dalam satu jam terakhir.

--min-mtime

Time

Hanya menyalin file yang dimodifikasi setelah waktu yang ditentukan. Format waktu: UTC (misalnya, 2006-01-02T15:04:05).

Catatan

--min-mtime "2006-01-02T15:04:05" hanya menyalin file yang dimodifikasi setelah 2006-01-02T15:04:05.

--max-mtime

Time

Hanya menyalin file yang dimodifikasi sebelum waktu yang ditentukan. Format waktu: UTC (misalnya, 2006-01-02T15:04:05).

--min-size

SizeSuffix

Ukuran minimum file yang akan ditransfer. Satuan default adalah byte. Anda dapat menambahkan sufiks: B|K|M|G|T|P (misalnya, 1K = 1024 B).

--no-progress

/

Menonaktifkan bilah kemajuan.

--no-error-report

/

Mencegah pembuatan file laporan error selama operasi batch.

--output-dir

string

Direktori tempat file laporan error disimpan selama operasi batch. Default: ossutil_output.

--page-size

int

Jumlah maksimum objek yang terdaftar per halaman selama salin batch. Rentang valid: 1–1000. Default: 1000.

--parallel

int

Jumlah tugas konkuren untuk operasi internal pada satu file.

--part-size

SizeSuffix

Ukuran setiap bagian dalam operasi multi-bagian. Secara default, ossutil menghitung ukuran bagian optimal berdasarkan ukuran file. Rentang valid: 100 KiB hingga 5 GiB.

-r, --recursive

/

Menjalankan operasi secara rekursif. Saat opsi ini diatur, perintah memproses semua objek yang cocok dalam bucket. Jika tidak, perintah hanya beroperasi pada objek yang secara eksplisit ditentukan.

--request-payer

string

Metode pembayaran untuk permintaan. Tetapkan ke requester jika bucket menggunakan mode pay-by-requester.

--size-only

/

Hanya menyalin file sumber yang ukurannya berbeda dari tujuan.

--start-after

string

Mengembalikan objek yang berada setelah nilai yang ditentukan dalam urutan alfabetis, tidak termasuk nilai tersebut.

--storage-class

string

Kelas penyimpanan untuk objek. Nilai yang valid:

  • Standard: Penyimpanan Standar.

  • IA: Penyimpanan akses jarang.

  • Archive: Archive Storage.

  • ColdArchive: Penyimpanan Arsip Dingin.

  • DeepColdArchive: Deep Cold Archive.

--tagging

string

Tag untuk objek, ditentukan sebagai pasangan key=value.

--tagging-directive

string

Menentukan cara menetapkan tag untuk objek tujuan. Nilai yang valid:

  • COPY

  • REPLACE

-u, --update

/

Melewatkan file di tujuan yang sudah ada dan memiliki waktu modifikasi lebih baru daripada sumber.

Catatan

Jika file tujuan ada tetapi memiliki waktu modifikasi lebih lama daripada sumber, file tersebut diperbarui.

--version-id

string

Menentukan ID versi objek (VersionId).

Catatan

Mulai versi ossutil 2.3.0, Anda dapat mengonfigurasi opsi --job, --parallel, --bigfile-threshold, --part-size, dan --write-buffer-size dalam file konfigurasi. Tambahkan sebagai entri key=value di bawah bagian profil yang relevan (misalnya, job=10), atau gunakan perintah ossutil config set. Opsi baris perintah menggantikan pengaturan dalam file konfigurasi.

Catatan

Untuk informasi selengkapnya, lihat Command-line options.

Aturan penamaan objek tujuan:

  • Untuk penyalinan file tunggal, jika dest_prefix kosong, nama objek tujuan mengikuti jalur relatif file sumber.

  • Untuk penyalinan file tunggal, jika dest_prefix diakhiri dengan "/", nama objek tujuan adalah dest_prefix + jalur relatif sumber.

  • Untuk penyalinan file tunggal, jika dest_prefix tidak diakhiri dengan "/", nama objek tujuan sesuai dengan dest_prefix.

  • Untuk penyalinan batch, jika dest_prefix diakhiri dengan "/", nama objek tujuan adalah dest_prefix + jalur relatif sumber.

  • Untuk penyalinan batch, jika dest_prefix tidak diakhiri dengan "/", nama objek tujuan adalah dest_prefix + "/" + jalur relatif sumber.

Contoh

  • Salin satu file

    ossutil cp oss://examplebucket1/examplefile.txt oss://examplebucket1/desfolder/
  • Salin file inkremental

    Saat menyalin batch, gunakan opsi --update untuk melewatkan file di tujuan yang sudah ada dan memiliki waktu modifikasi lebih baru daripada sumber:

    ossutil cp oss://examplebucket1/srcfolder1/ oss://examplebucket1/desfolder/ -r --update
  • Salin bucket-ke-bucket setelah replikasi same-region

    • Gunakan opsi --checksum untuk penyalinan inkremental berbasis checksum: Ideal ketika konsistensi konten yang ketat diperlukan (misalnya, mengulangi penyalinan batch yang gagal sambil melewatkan file yang berhasil disalin). Sistem mengikuti logika ini:

      1. Bandingkan ukuran file terlebih dahulu.

      2. Jika ukuran cocok, hitung dan bandingkan checksum CRC64.

      3. Salin hanya jika checksum berbeda.

      ossutil cp oss://examplebucket1/srcfolder1/ oss://examplebucket1/desfolder/ -r --checksum
    • Gunakan opsi --ignore-existing untuk melewatkan file yang sudah ada: Berguna ketika Anda ingin melewatkan file yang sudah ada di tujuan tanpa menimpanya:

      ossutil cp oss://examplebucket1/srcfolder1/ oss://examplebucket1/desfolder/ -r --ignore-existing
  • Ganti nama file

    ossutil cp oss://examplebucket1/examplefile.txt oss://examplebucket1/example.txt 

    Saat mengganti nama file dengan perintah cp , file asli tetap ada. Hapus secara manual setelah mengganti nama jika diperlukan.

  • Ubah tag objek

    ossutil cp oss://examplebucket1/examplefile.txt oss://examplebucket1/ --tagging "abc=1&bcd=2&……"