Topik ini menjelaskan cara menjalankan perintah rm untuk menghapus objek, bagian, atau bucket yang tidak lagi diperlukan guna menghindari biaya berlebih.
Catatan penggunaan
-
Untuk menghapus satu objek, Anda harus memiliki izin
oss:DeleteObject. Untuk menghapus semua objek dalam direktori, Anda harus memiliki izinoss:DeleteObjectdanoss:ListObjects. Untuk menghapus versi objek tertentu, Anda harus memiliki izinoss:DeleteObjectVersion. Untuk menghapus semua versi objek dalam bucket, Anda harus memiliki izinoss:ListObjectVersionsdanoss:DeleteObjectVersion. Untuk menghapus semua versi objek dalam direktori, Anda harus memiliki izinoss:DeleteObjectVersiondanoss:ListObjects. Untuk menghapus bagian dari suatu objek, Anda harus memiliki izinoss:ListMultipartUploadsdanoss:AbortMultipartUpload. Untuk menghapus semua objek dan bagian dalam bucket, Anda harus memiliki izinoss:ListMultipartUploads,oss:AbortMultipartUpload,oss:ListObjects, danoss:DeleteObject. Untuk menghapus bucket, Anda harus memiliki izinoss:DeleteBucket. -
Mulai versi ossutil 1.6.16 dan yang lebih baru, Anda dapat langsung menggunakan ossutil sebagai nama biner di command line tanpa perlu menyesuaikan nama biner berdasarkan sistem operasi. Untuk versi sebelum 1.6.16, Anda harus memperbarui nama biner sesuai sistem operasi. Untuk informasi selengkapnya, lihat Referensi perintah ossutil.
Sintaksis perintah
ossutil rm oss://bucketname[/prefix]
[-r, --recursive]
[-b, --bucket]
[-m, --multipart]
[-a, --all-type]
[-f, --force]
[--include <value>]
[--exclude <value>]
[--version-id <value>]
[--all-versions]
[--payer <value>]
[--encoding-type <value>]
Tabel berikut menjelaskan parameter dan opsi dalam sintaksis tersebut.
|
Parameter/Opsi |
Deskripsi |
|
bucketname |
Nama bucket. |
|
prefix |
Awalan dalam nama sumber daya, seperti direktori dan objek. |
|
-r, --recursive |
Jika Anda menentukan opsi ini, ossutil akan menghapus semua objek yang namanya mengandung awalan yang ditentukan dari bucket. Jika Anda tidak menentukan opsi ini, ossutil hanya menghapus objek yang ditentukan. |
|
-b, --bucket |
Menentukan bahwa perintah menghapus bucket. Opsi ini hanya diperlukan saat Anda menghapus bucket. |
|
-m, --multipart |
Menentukan bahwa operasi dilakukan pada tugas unggah multi-bagian yang belum lengkap di dalam bucket. |
|
-a, --all-type |
Menentukan bahwa operasi dilakukan pada objek yang namanya mengandung awalan yang ditentukan dan data yang dibuat oleh tugas unggah multi-bagian yang belum lengkap di dalam bucket. |
|
-f, --force |
Memaksa operasi tanpa meminta konfirmasi. |
|
--include |
Mencakup semua objek yang memenuhi kondisi yang ditentukan. Untuk informasi selengkapnya, lihat Opsi --include dan --exclude. |
|
--exclude |
Mengecualikan semua objek yang memenuhi kondisi yang ditentukan. Untuk informasi selengkapnya, lihat Opsi --include dan --exclude. |
|
--version-id |
ID versi objek. Parameter ini hanya berlaku untuk bucket yang telah diaktifkan atau ditangguhkan Pengendalian versi-nya. |
|
--all-versions |
Menentukan semua versi objek. Opsi ini hanya berlaku untuk objek di bucket yang telah diaktifkan atau ditangguhkan Pengendalian versi-nya. Anda hanya dapat menentukan salah satu dari opsi --version-id dan --all-versions dalam satu perintah rm. |
|
--payer |
Pihak yang membayar biaya yang dihasilkan oleh operasi. Jika Anda ingin pihak pemohon yang mengakses sumber daya di path tertentu membayar biaya yang dihasilkan oleh operasi—seperti biaya traffic dan permintaan—atur parameter ini ke requester. |
|
--encoding-type |
Encoding awalan yang mengikuti |
Hapus objek
Objek tidak dapat dipulihkan setelah dihapus. Lakukan operasi ini dengan hati-hati.
Jika Anda menggunakan perintah rm dengan atau tanpa opsi -r untuk menghapus satu atau beberapa objek, operasi ListObjects (GetBucket) dan DeleteObject akan dipanggil. Dalam kasus ini, Anda dikenai biaya karena mengirim permintaan PUT. Untuk informasi selengkapnya, lihat Biaya permintaan.
-
Jika Anda menyertakan opsi --include dan --exclude dalam perintah rm untuk menghapus objek, penghapusan tidak disengaja dapat terjadi akibat konfigurasi kondisi yang tidak tepat. Kami menyarankan Anda berhati-hati saat menggunakan kedua opsi tersebut secara bersamaan.
-
Anda dapat menentukan lebih dari satu kondisi dalam opsi --include dan --exclude. Semua kondisi diterapkan dari kiri ke kanan untuk mencocokkan objek. Jika Anda menentukan lebih dari satu kondisi, kami menyarankan agar Anda menempatkan opsi --include sebelum opsi --exclude.
-
Contoh
-
Hapus satu objek
Hapus objek bernama exampleobject.txt dari bucket bernama examplebucket.
ossutil rm oss://examplebucket/exampleobject.txt -
Hapus semua objek yang namanya mengandung awalan "test" dari bucket bernama examplebucket.
ossutil rm oss://examplebucket/test -r -
Hapus semua objek yang namanya mengandung akhiran ".png" dari bucket bernama examplebucket.
ossutil rm oss://examplebucket --include "*.png" -r -
Hapus objek yang namanya mengandung string "abc" dan tidak mengandung akhiran ".jpg" atau ".txt" dari bucket bernama examplebucket.
ossutil rm oss://examplebucket --include "*abc*" --exclude "*.jpg" --exclude "*.txt" -r -
Hapus versi tertentu dari objek bernama exampleobject.txt dari bucket yang telah diaktifkan Pengendalian versi bernama examplebucket.
ossutil rm oss://examplebucket/exampleobject.txt --version-id CAEQARiBgID8rumR2hYiIGUyOTAyZGY2MzU5MjQ5ZjlhYzQzZjNlYTAyZDE3****Untuk informasi selengkapnya tentang cara mendapatkan semua versi objek, lihat ls.
-
Hapus semua versi objek bernama exampleobject.txt dari bucket yang telah diaktifkan Pengendalian versi bernama examplebucket.
ossutil rm oss://examplebucket/exampleobject.txt --all-versions -
Hapus semua versi semua objek dari bucket yang telah diaktifkan Pengendalian versi bernama examplebucket.
ossutil rm oss://examplebucket --all-versions -r
CatatanJika nama objek mengandung karakter kontrol, seperti SOH (0x01), BS (0x08), atau DEL (0x7F), menjalankan
ossutil rmtanpa opsi--encoding-typegagal mencocokkan objek karena nama objek tidak diurai dengan benar. Demikian pula, menjalankanossutil lstanpa--encoding-typetidak menampilkan karakter kontrol tersebut, sehingga objek tampak hilang meskipun masih ada di bucket. Tentukan--encoding-type urlagar ossutil dapat menampilkan dan mencocokkan nama objek yang mengandung karakter kontrol secara benar. -
-
Output contoh
Tanggapan sukses mencakup jumlah objek yang dihapus dan waktu yang digunakan untuk menyelesaikan operasi penghapusan:
Succeed: Total 8 objects. Removed 8 objects. 0.106852(s) elapsed
Hapus bagian
Jika Anda menggunakan perintah rm dengan beberapa opsi untuk menghapus bagian, operasi ListMultipartUploads, ListParts, dan AbortMultipartUpload akan dipanggil. Dalam kasus ini, Anda dikenai biaya karena mengirim permintaan GET saat operasi ListMultipartUploads dan ListParts dipanggil, serta permintaan PUT saat operasi AbortMultipartUpload dipanggil. Untuk informasi selengkapnya, lihat Biaya permintaan.
-
Contoh
-
Tentukan opsi -m dalam perintah untuk menghapus bagian yang dihasilkan oleh tugas unggah multi-bagian yang belum lengkap dari objek bernama exampleobject.txt di bucket bernama examplebucket.
ossutil rm -m oss://examplebucket/exampleobject.txt -
Tentukan opsi -m dan -r dalam perintah untuk menghapus secara rekursif bagian yang dihasilkan oleh tugas unggah multi-bagian yang belum lengkap dari objek yang namanya mengandung awalan "test" di bucket bernama examplebucket.
ossutil rm -m oss://examplebucket/test -r Do you really mean to remove recursively multipart uploadIds of oss://examplebucket/test(y or N)? y -
Tentukan opsi -a dan -r dalam perintah untuk menghapus secara rekursif objek yang namanya mengandung awalan "src" dan bagian yang dihasilkan oleh tugas unggah multi-bagian yang belum lengkap dari objek-objek tersebut di bucket bernama examplebucket.
ossutil rm oss://examplebucket/src -a -r Do you really mean to remove recursively objects and multipart uploadIds of oss://examplebucket/src(y or N)? y
-
-
Tanggapan contoh
Tanggapan sukses mencakup jumlah objek yang dihapus, jumlah tugas unggah multi-bagian yang menghasilkan bagian yang dihapus, dan waktu yang digunakan untuk menyelesaikan operasi penghapusan:
Succeed: Total 1 objects, 3 uploadIds. Removed 1 objects, 3 uploadIds. 1.922915(s) elapsed
Hapus bucket
-
Hapus bucket examplebucket yang tidak berisi objek atau bagian apa pun.
ossutil rm oss://examplebucket -b Do you really mean to remove the Bucket: examplebucket(y or N)? yTanggapan sukses mencakup nama bucket yang dihapus dan waktu yang digunakan untuk menghapus bucket tersebut:
Removed Bucket: examplebucket 2.230745(s) elapsed -
Hapus bucket bernama examplebucket beserta semua objek dan bagian di dalamnya.
PeringatanJika Anda menjalankan perintah berikut, semua data dalam bucket akan dihapus dan data yang dihapus tidak dapat dipulihkan. Lakukan operasi ini dengan hati-hati.
ossutil rm oss://examplebucket -b -a -r Do you really mean to remove recursively objects and multipart uploadIds of oss://examplebucket(y or N)? y Do you really mean to remove the Bucket: examplebucket(y or N)? yTanggapan sukses mencakup jumlah objek yang dihapus, jumlah tugas unggah multi-bagian yang menghasilkan bagian yang dihapus, nama bucket yang dihapus, dan waktu yang digunakan untuk menyelesaikan operasi penghapusan:
Succeed: Total 189 objects, 37 uploadIds. Removed 189 objects, 37 uploadIds. Removed Bucket: examplebucket 9.184193(s) elapsed
Pemecahan masalah
Jika ossutil rm -b -a -r gagal karena bucket berisi objek yang namanya mencakup karakter kontrol, seperti SOH (0x01), BS (0x08), atau DEL (0x7F), gunakan alur kerja alternatif berikut untuk menghapus bucket:
-
Daftar objek di bucket dengan nama objek yang di-encode URL agar karakter kontrol terlihat:
ossutil api list-objects --bucket <bucket_name> --encoding-type url --output-format json -
Gunakan nama objek yang telah di-encode untuk membuat badan permintaan penghapusan, lalu hapus objek secara batch:
ossutil api delete-multiple-objects --bucket <bucket_name> --encoding-type url2 --delete file://delete-objects.xml -
Hapus bucket yang kini kosong:
ossutil rb oss://<bucket_name>
Pada ossutil 2.x, opsi -b tidak lagi didukung untuk menghapus bucket. Gunakan perintah rb sebagai ganti rm -b.
Byte NUL (0x00) tidak dapat disertakan dalam kunci objek. Jika Anda mencoba membuat objek yang namanya mengandung byte NUL, OSS akan mengembalikan error 400 BadRequest.
Opsi umum
Untuk mengakses bucket di wilayah berbeda, gunakan -e untuk menentukan Titik akhir. Untuk mengakses bucket milik Akun Alibaba Cloud lain, gunakan -i untuk ID AccessKey dan -k untuk Rahasia AccessKey.
Sebagai contoh, Anda dapat menjalankan perintah berikut untuk menghapus objek bernama exampletest.png dari bucket bernama testbucket yang berlokasi di wilayah Tiongkok (Shanghai) dan dimiliki oleh Akun Alibaba Cloud lain:
ossutil rm oss://testbucket/exampletest.png -e oss-cn-shanghai.aliyuncs.com -i yourAccessKeyID -k yourAccessKeySecret