Gunakan perintah ossutil set-meta untuk mengonfigurasi, memperbarui, atau menghapus metadata objek di OSS. Metadata objek mencakup header HTTP standar dan metadata pengguna (header dengan awalan X-Oss-Meta-).
Untuk objek Cold Archive atau Deep Cold Archive berukuran lebih dari 100 MB, perintah set-meta mungkin gagal karena timeout server. Sebagai gantinya, gunakan perintah cp.
Prasyarat
Sebelum memulai, pastikan Anda telah:
Memiliki izin RAM yang diperlukan untuk operasi Anda. Untuk informasi selengkapnya, lihat Lampirkan kebijakan kustom ke RAM user.
Operasi Izin yang diperlukan Objek tunggal oss:GetObject,oss:PutObject,oss:GetObjectVersion,oss:GetObjectAclBeberapa objek oss:GetObject,oss:PutObject,oss:GetObjectVersion,oss:ListObjectsMenginstal ossutil versi 1.6.16 atau yang lebih baru. Versi sebelumnya mengharuskan Anda mengganti nama binari sesuai sistem operasi Anda. Untuk informasi selengkapnya, lihat Referensi perintah ossutil.
Sintaksis perintah
ossutil set-meta oss://bucketname[/prefix]
[header:value#header:value...]
[--update]
[--delete]
[-r, --recursive]
[-f, --force]
[--object-file <value>]
[--snapshot-path <value>]
[--disable-ignore-error]
[--version-id <value>]
[--include <value>]
[--exclude <value>]Parameter dan opsi
| Parameter/Opsi | Deskripsi |
|---|---|
bucketname | Nama bucket. |
prefix | Awalan yang sesuai dengan nama resource di dalam bucket, seperti direktori dan objek. |
header:value#header:value... | Header metadata dalam bentuk pasangan kunci-nilai. Kunci header tidak peka huruf besar/kecil; nilai peka huruf besar/kecil. Pisahkan beberapa header dengan #. Contoh: Cache-Control:no-cache#Expires:2022-10-12T00:00:00.000Z. Untuk daftar header yang didukung, lihat bagian di bawah. |
--update (-u) | Memperbarui hanya header yang ditentukan. Tidak dapat digunakan bersamaan dengan --delete. |
--delete | Menghapus hanya header metadata pengguna (header dengan awalan X-Oss-Meta-). Tidak dapat digunakan bersamaan dengan --update. |
-r, --recursive | Menerapkan operasi ke semua objek yang namanya sesuai dengan awalan yang ditentukan. |
-f, --force | Menjalankan operasi tanpa meminta konfirmasi. |
--object-file | Path ke file TXT atau XML lokal yang berisi daftar nama objek yang akan diproses, satu nama per baris. |
--snapshot-path | Path untuk menyimpan snapshot operasi. Objek yang sudah memiliki snapshot dari eksekusi sebelumnya akan dilewati. Harus digunakan bersama -r/--recursive atau --object-file. |
--disable-ignore-error | Menentukan bahwa error selama operasi batch tidak diabaikan. |
--version-id | ID versi objek yang akan diproses. Hanya berlaku ketika Pengendalian versi bucket diaktifkan atau ditangguhkan. |
--include | Hanya menyertakan objek yang sesuai dengan pola yang ditentukan. Untuk informasi selengkapnya, lihat Opsi --include dan --exclude. |
--exclude | Mengecualikan objek yang sesuai dengan pola yang ditentukan. Untuk informasi selengkapnya, lihat Opsi --include dan --exclude. |
Header yang didukung
Expires (time.RFC3339: 2006-01-02T15:04:05Z07:00)
X-Oss-Object-Acl
Origin
X-Oss-Storage-Class
Content-Encoding
Cache-Control
Content-Disposition
Accept-Encoding
X-Oss-Server-Side-Encryption
Content-Type
Header dengan awalan X-Oss-Meta-Untuk detail cara menggunakan header ini, lihat Kelola metadata objek.
Mode operasi
Perintah set-meta mendukung tiga mode berbeda. Pilih mode yang sesuai dengan tujuan Anda:
| Mode | Flag | Efek |
|---|---|---|
| Timpa | _(tanpa flag)_ | Menetapkan metadata yang ditentukan. Jika Anda menghilangkan header:value, ossutil mempertahankan header X-Oss-Meta-* yang ada tanpa perubahan, dan menanyakan apakah akan mempertahankan header HTTP. |
| Perbarui | --update | Memperbarui hanya header yang ditentukan. Semua metadata lain tetap tidak berubah. Jika Anda membiarkan nilai header kosong, nilai aslinya tetap dipertahankan. |
| Hapus | --delete | Menghapus hanya header X-Oss-Meta-* yang ditentukan. Header HTTP standar tidak dapat dihapus dengan flag ini. |
Konfigurasi atau perbarui metadata objek
Objek tunggal
Tetapkan daftar kontrol akses (ACL) objek ke private:
ossutil set-meta oss://examplebucket/exampleobject.txt X-Oss-Object-Acl:privatePerbarui ACL objek ke public-read tanpa mengubah metadata lain (gunakan --update):
ossutil set-meta oss://examplebucket/exampleobject.txt X-Oss-Object-Acl:public-read --updateTetapkan kelas penyimpanan versi objek tertentu ke Standard:
ossutil set-meta oss://examplebucket/exampleobject.txt X-Oss-Storage-Class:Standard \
--version-id CAEQARiBgID8rumR2hYiIGUyOTAyZGY2MzU5MjQ5ZjlhYzQzZjNlYTAyZDE3MDRkTetapkan kelas penyimpanan versi objek tertentu ke Cold Archive:
ossutil set-meta oss://examplebucket/exampleobject.txt X-Oss-Storage-Class:ColdArchive \
--version-id CAEQARiBgID8rumR2hYiIGUyOTAyZGY2MzU5MjQ5ZjlhYzQzZjNlYTAyZDE3MDRkPerubahan kelas penyimpanan hanya berlaku setelah perintah selesai dieksekusi. Untuk menemukan ID versi, lihat ls.
Beberapa objek dengan awalan umum
Tetapkan Cache-Control ke no-cache dan ACL ke private untuk semua objek dengan awalan src:
ossutil set-meta oss://examplebucket/src Cache-Control:no-cache#X-Oss-Object-Acl:private -rPerbarui kelas penyimpanan ke Infrequent Access (IA) untuk semua objek .jpg di dalam direktori:
ossutil set-meta oss://examplebucket/desfolder/ X-Oss-Storage-Class:IA \
--include "*.jpg" -u -rPerbarui kelas penyimpanan ke Archive untuk objek yang namanya mengandung abc, kecuali file .jpg dan .txt:
ossutil set-meta oss://examplebucket/desfolder/ X-Oss-Storage-Class:Archive \
--include "*abc*" --exclude "*.jpg" --exclude "*.txt" -u -rJika terjadi error pada salah satu objek selama operasi batch, ossutil mencatatnya di direktori ossutil_output dan melanjutkan pemrosesan objek lainnya.Beberapa objek dari daftar file
Untuk memperbarui metadata objek di direktori berbeda, cantumkan nama-namanya dalam file lokal dan berikan melalui --object-file.
Buat file (misalnya,
localfile.txt) yang mencantumkan satu nama objek per baris:exampleobject1.jpg dir1/exampleobject2.png dir2/exampleobject3.txtJalankan perintah:
ossutil set-meta oss://examplebucket \ Cache-Control:no-cache#X-Oss-Object-Acl:private \ --update --object-file localfile.txt --snapshot-path dir/
Output yang diharapkan
Eksekusi yang berhasil mencetak waktu yang diperlukan:
0.106852(s) elapsedHapus metadata pengguna
Flag --delete hanya menghapus header metadata pengguna (header dengan awalan X-Oss-Meta-). Header HTTP standar tidak dapat dihapus dengan cara ini.
Objek tunggal
Hapus header metadata pengguna tertentu dari objek. Biarkan nilainya kosong:
ossutil set-meta oss://examplebucket/exampleobject.txt X-Oss-Meta-Createdby --deleteBeberapa objek dari daftar file
Buat file yang mencantumkan nama objek:
exampleobject1.jpg dir1/exampleobject2.png dir2/exampleobject3.txtJalankan perintah:
ossutil set-meta oss://examplebucket X-Oss-Meta-Location \ --delete --object-file localfile.txt --snapshot-path dir/
Output yang diharapkan
0.106846(s) elapsedOpsi umum
Untuk mengoperasikan bucket di wilayah berbeda atau yang dimiliki oleh Akun Alibaba Cloud berbeda, tambahkan opsi yang relevan:
| Opsi | Deskripsi |
|---|---|
-e | Titik akhir wilayah tempat bucket berada. |
-i | ID AccessKey Akun Alibaba Cloud yang memiliki bucket tersebut. |
-k | Rahasia AccessKey Akun Alibaba Cloud yang memiliki bucket tersebut. |
Contoh: tetapkan metadata pada objek di bucket yang berlokasi di wilayah China (Shanghai), dimiliki oleh akun berbeda:
ossutil set-meta oss://testbucket/testobject.jpg X-Oss-Object-Acl:private \
-e oss-cn-shanghai.aliyuncs.com \
-i yourAccessKeyID \
-k yourAccessKeySecretUntuk daftar lengkap opsi umum, lihat Opsi umum.
Verifikasi hasil
Setelah menjalankan set-meta, gunakan perintah stat untuk memastikan metadata telah diterapkan:
ossutil stat oss://examplebucket/exampleobject.txtUntuk informasi selengkapnya, lihat stat.
Langkah selanjutnya
Kelola metadata objek — pahami setiap header metadata dan efeknya
ls — daftar objek dan ambil ID versi
cp — gunakan perintah
cpuntuk perubahan kelas penyimpanan pada objek Cold Archive atau Deep Cold Archive berukuran besarOpsi umum — referensi lengkap untuk
-e,-i,-k, dan opsi bersama lainnya