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, danoss: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:
|
|
--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: |
|
--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:
|
|
-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: |
|
--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:
|
|
--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
|
|
--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
|
|
--min-mtime |
Time |
Hanya menyalin file yang dimodifikasi setelah waktu yang ditentukan. Format waktu: UTC (misalnya, 2006-01-02T15:04:05). Catatan
|
|
--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: |
|
--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:
|
|
--tagging |
string |
Tag untuk objek, ditentukan sebagai pasangan key=value. |
|
--tagging-directive |
string |
Menentukan cara menetapkan tag untuk objek tujuan. Nilai yang valid:
|
|
-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). |
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.
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
--checksumuntuk 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:-
Bandingkan ukuran file terlebih dahulu.
-
Jika ukuran cocok, hitung dan bandingkan checksum CRC64.
-
Salin hanya jika checksum berbeda.
ossutil cp oss://examplebucket1/srcfolder1/ oss://examplebucket1/desfolder/ -r --checksum -
-
Gunakan opsi
--ignore-existinguntuk 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.txtSaat 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&……"