Operasi DeleteMultipleObjects menghapus beberapa objek dari bucket yang sama.
Catatan
Satu permintaan DeleteMultipleObjects dapat menghapus hingga 1.000 objek.
Jika sebuah bucket memiliki aturan replikasi data dan kebijakan replikasinya diatur ke Sync Additions, Deletions, And Modifications, saat Anda memanggil DeleteMultipleObjects untuk menghapus objek dalam bucket tersebut, objek yang sesuai di bucket target juga akan dihapus. Objek-objek tersebut tidak dapat dipulihkan setelah dihapus. Jika Pengendalian versi juga diaktifkan untuk bucket tersebut, saat Anda memanggil DeleteMultipleObjects, OSS membuat penanda hapus untuk setiap objek yang dihapus di bucket tersebut. Aksi ini direplikasi ke bucket target, dan penanda hapus yang sesuai dibuat.
Objek yang telah dihapus tidak dapat dipulihkan. Lakukan dengan hati-hati. Untuk informasi selengkapnya tentang cara menghapus objek, lihat Delete objects.
Pengendalian versi
Anda juga dapat menggunakan operasi DeleteMultipleObjects untuk menghapus beberapa objek dari bucket yang telah diaktifkan Pengendalian versi. Jika Anda tidak menentukan ID versi dalam permintaan penghapusan, penanda hapus akan dimasukkan. Jika Anda menentukan ID versi, versi objek yang ditentukan akan dihapus secara permanen.
Izin
Secara default, Akun Alibaba Cloud memiliki izin penuh. Pengguna RAM atau Peran RAM di bawah Akun Alibaba Cloud tidak memiliki izin apa pun secara default. Akun Alibaba Cloud atau administrator akun harus memberikan izin operasi melalui RAM policies atau Bucket policies.
API | Action | Definisi |
DeleteMultipleObjects | oss:DeleteObject | Menghapus beberapa objek dari sebuah bucket. |
Sintaksis permintaan
POST /?delete HTTP/1.1
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Date: GMT Date
Content-Length: ContentLength
Content-MD5: MD5Value
Authorization: SignatureValue
<?xml version="1.0" encoding="UTF-8"?>
<Delete>
<Quiet>true</Quiet>
<Object>
<Key>key</Key>
</Object>
…
</Delete>Header permintaan
OSS memverifikasi isi pesan berdasarkan header permintaan berikut sebelum operasi penghapusan dilakukan.
Nama | Tipe | Wajib | Contoh | Deskripsi |
Encoding-type | String | Tidak | url2 | Kunci objek harus dikodekan dalam UTF-8. Jika kunci tersebut mengandung karakter kontrol yang tidak didukung oleh XML 1.0, atur Encoding-type ke url2 dan URL-encode kunci tersebut dalam permintaan. OSS kemudian akan mengkodekan bidang Key dalam respons. Nilai default: none Nilai yang valid: url2 |
Content-Length | String | Ya | 151 | Panjang isi pesan HTTP. OSS memverifikasi isi pesan yang diterima berdasarkan header permintaan ini. Operasi penghapusan hanya dilakukan setelah isi pesan diverifikasi. |
Content-MD5 | String | Ya | ohhnqLBJFiKkPSBO1eNaUA== | Header Content-MD5 adalah nilai yang dihasilkan menggunakan algoritma MD5. Header ini digunakan untuk memeriksa apakah isi pesan sama dengan isi yang dikirim. Setelah Anda menentukan header permintaan Content-MD5, OSS menghitung nilai Content-MD5 dari isi pesan dan memeriksa apakah nilainya konsisten dengan nilai header permintaan Content-MD5. Catatan Untuk mendapatkan nilai bidang Content-MD5, enkripsi isi pesan permintaan DeleteMultipleObjects menggunakan algoritma MD5 untuk mendapatkan array byte 128-bit. Kemudian, encode array byte tersebut dalam Base64. String yang dihasilkan merupakan nilai bidang Content-MD5. |
Elemen permintaan
Nama | Tipe | Wajib | Contoh | Deskripsi |
Delete | Container | Ya | N/A | Container untuk permintaan DeleteMultipleObjects. Node anak: satu atau lebih elemen Object dan elemen Quiet Node induk: None |
Object | Container | Ya | N/A | Container untuk informasi tentang suatu objek. Node anak: Key Node induk: Delete |
Key | String | Ya | test.jpg | Nama objek yang akan dihapus. Node induk: Object |
Quiet | Enumeration string | Tidak | false | Menentukan apakah akan mengaktifkan mode respons simple. DeleteMultipleObjects menyediakan mode respons berikut:
Nilai yang valid: true (mengaktifkan mode simple) dan false (mengaktifkan mode verbose) Nilai default: false Node induk: Delete |
VersionId | String | Tidak | CAEQNRiBgIDyz.6C0BYiIGQ2NWEwNmVhNTA3ZTQ3MzM5ODliYjM1ZTdjYjA4**** | Nomor versi objek yang akan dihapus. Node induk: Object |
Elemen respons
Nama | Tipe | Contoh | Deskripsi |
DeleteResult | Container | N/A | Container untuk hasil permintaan DeleteMultipleObjects. Node anak: Deleted Node induk: None |
Deleted | Container | N/A | Container untuk objek yang berhasil dihapus. Penting Elemen respons Deleted hanya berisi objek yang berhasil dihapus. Elemen ini tidak berisi objek yang gagal dihapus. Untuk mendapatkan nama objek yang gagal dihapus, bandingkan daftar objek dalam permintaan dengan daftar objek dalam elemen `Deleted` pada respons. Node anak: Key Node induk: DeleteResult |
Key | String | demo.jpg | Nama objek yang dihapus. Node induk: Deleted |
VersionId | String | version_20211101141621_d137 | ID versi. Node induk: Deleted |
DeleteMarker | Boolean | true | Menunjukkan apakah versi tersebut merupakan penanda hapus. Nilai yang valid: true dan false. Catatan Elemen ini dikembalikan dengan nilai true hanya ketika penanda hapus dibuat atau penanda hapus dihapus secara permanen. Node induk: Deleted |
DeleteMarkerVersionId | String | THUQNRiBgICEoPiC0BYiIGMxZWJmYmMzYjE0OTQ0ZmZhYjgzNzkzYjc2NjZk**** | ID versi dari penanda hapus. Node induk: Deleted |
EncodingType | String | url2 | Tipe pengkodean yang digunakan untuk nama objek dalam respons. Jika Anda menentukan parameter Encoding-type dalam permintaan, OSS akan mengkodekan Key dalam respons. Node induk: DeleteResult |
Contoh
Contoh permintaan dengan mode respons simple dinonaktifkan
POST /?delete HTTP/1.1 Host: oss-example.oss-cn-hangzhou.aliyuncs.com Date: Wed, 29 Feb 2012 12:26:16 GMT Content-Length:151 Content-MD5: ohhnqLBJFiKkPSBO1eNaUA== Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e <?xml version="1.0" encoding="UTF-8"?> <Delete> <Quiet>false</Quiet> <Object> <Key>multipart.data</Key> </Object> <Object> <Key>test.jpg</Key> </Object> <Object> <Key>demo.jpg</Key> </Object> </Delete>Contoh respons
HTTP/1.1 200 OK x-oss-request-id: 78320852-7eee-b697-75e1-b6db0f4849e7 Date: Wed, 29 Feb 2012 12:26:16 GMT Content-Length: 244 Content-Type: application/xml Connection: keep-alive Server: AliyunOSS <?xml version="1.0" encoding="UTF-8"?> <DeleteResult xmlns=”http://doc.oss-cn-hangzhou.aliyuncs.com”> <Deleted> <Key>multipart.data</Key> </Deleted> <Deleted> <Key>test.jpg</Key> </Deleted> <Deleted> <Key>demo.jpg</Key> </Deleted> </DeleteResult>Contoh permintaan dengan mode respons simple diaktifkan
POST /?delete HTTP/1.1 Host: oss-example.oss-cn-hangzhou.aliyuncs.com Date: Wed, 29 Feb 2012 12:33:45 GMT Content-Length:151 Content-MD5: ohhnqLBJFiKkPSBO1eNaUA== Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e <?xml version="1.0" encoding="UTF-8"?> <Delete> <Quiet>true</Quiet> <Object> <Key>multipart.data</Key> </Object> <Object> <Key>test.jpg</Key> </Object> <Object> <Key>demo.jpg</Key> </Object> </Delete>Contoh respons
HTTP/1.1 200 OK x-oss-request-id: 559CC9BDC755F95A64485981 Date: Wed, 29 Feb 2012 12:33:45 GMT Content-Length: 0 Connection: keep-alive Server: AliyunOSSContoh permintaan untuk memanggil operasi DeleteMultipleObjects tanpa menentukan ID versi
POST /?delete HTTP/1.1 Host: oss-example.oss-cn-hangzhou.aliyuncs.com Date: Tue, 09 Apr 2019 04:20:03 GMT Content-MD5: xSLOYWaPC86RPwWXNiFeXg== Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e <?xml version="1.0" encoding="UTF-8"?> <Delete> <Quiet>false</Quiet> <Object> <Key>multipart.data</Key> </Object> <Object> <Key>test.jpg</Key> </Object> </Delete>Contoh respons
Pada contoh berikut, ID versi dari dua objek yang akan dihapus (multipart.dat dan test.jpg) tidak ditentukan. Oleh karena itu, OSS memasukkan penanda hapus untuk kedua objek tersebut dan mengembalikan <DeleteMarker>true</DeleteMarker> dan <DeleteMarkerVersionId>XXXXXX</DeleteMarkerVersionId>.
HTTP/1.1 200 OK x-oss-request-id: 5CAC1D73B7AEADE01700**** Date: Tue, 09 Apr 2019 04:20:03 GMT Content-Type: application/xml Connection: keep-alive Server: AliyunOSS <?xml version="1.0" encoding="UTF-8"?> <DeleteResult> <Deleted> <Key>multipart.data</Key> <DeleteMarker>true</DeleteMarker> <DeleteMarkerVersionId>CAEQMhiBgIDXiaaB0BYiIGQzYmRkZGUxMTM1ZDRjOTZhNjk4YjRjMTAyZjhl****</DeleteMarkerVersionId> </Deleted> <Deleted> <Key>test.jpg</Key> <DeleteMarker>true</DeleteMarker> <DeleteMarkerVersionId>CAEQMhiBgIDB3aWB0BYiIGUzYTA3YzliMzVmNzRkZGM5NjllYTVlMjYyYWEy****</DeleteMarkerVersionId> </Deleted> </DeleteResult>Contoh permintaan untuk menghapus versi tertentu dari suatu objek dengan menentukan ID versi
CatatanAnda harus menentukan Key dan VersionId.
POST /?delete HTTP/1.1 Host: oss-example.oss-cn-hangzhou.aliyuncs.com Date: Tue, 09 Apr 2019 06:09:34 GMT Content-Length:151 Content-MD5: 2Tpk+dL/tGyuSA+YCEuSVg== Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e <?xml version="1.0" encoding="UTF-8"?> <Delete> <Quiet>false</Quiet> <Object> <Key>multipart.data</Key> <VersionId>CAEQNRiBgIDyz.6C0BYiIGQ2NWEwNmVhNTA3ZTQ3MzM5ODliYjM1ZTdjYjA8****</VersionId> </Object> </Delete>Contoh respons
Contoh berikut menunjukkan bahwa kunci dan ID versi objek yang dihapus dikembalikan.
HTTP/1.1 200 OK x-oss-request-id: 5CAC371EB7AEADE01700**** Date: Tue, 09 Apr 2019 06:09:34 GMT Content-Length: 244 Content-Type: application/xml Connection: keep-alive Server: AliyunOSS <?xml version="1.0" encoding="UTF-8"?> <DeleteResult xmlns=”http://doc.oss-cn-hangzhou.aliyuncs.com”> <Deleted> <Key>multipart.data</Key> <VersionId>CAEQNRiBgIDyz.6C0BYiIGQ2NWEwNmVhNTA3ZTQ3MzM5ODliYjM1ZTdjYjA8****</VersionId> </Deleted> </DeleteResult>Contoh permintaan untuk menghapus penanda hapus dengan menentukan ID versi
POST /?delete HTTP/1.1 Host: oss-example.oss-cn-hangzhou.aliyuncs.com Date: Tue, 09 Apr 2019 06:14:50 GMT Content-Length: 178 Content-MD5: dX9IFePFgYhmINvAhG30Bg== Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e <?xml version="1.0" encoding="UTF-8"?> <Delete> <Quiet>false</Quiet> <Object> <Key>multipart.data</Key> <VersionId>CAEQNRiBgICEoPiC0BYiIGMxZWJmYmMzYjE0OTQ0ZmZhYjgzNzkzYjc2NjZk****</VersionId> </Object> </Delete>Contoh respons
Key dan VersionId yang dikembalikan merepresentasikan kunci dan ID versi objek yang dihapus.
Elemen DeleteMarker dan DeleteMarkerVersionId menunjukkan bahwa item yang dihapus merupakan penanda hapus dan ID versi yang sesuai. Dalam kasus ini, nilai VersionId dan DeleteMarkerVersionId sama, dan elemen DeleteMarker serta DeleteMarkerVersionId dikembalikan bersamaan.
HTTP/1.1 200 OK x-oss-request-id: 5CAC385AB7AEADE01700**** Date: Tue, 09 Apr 2019 06:14:50 GMT Content-Length: 364 Content-Type: application/xml Connection: keep-alive Server: AliyunOSS <?xml version="1.0" encoding="UTF-8"?> <DeleteResult xmlns=”http://doc.oss-cn-hangzhou.aliyuncs.com”> <Deleted> <Key>demo.jpg</Key> <VersionId>CAEQNRiBgICEoPiC0BYiIGMxZWJmYmMzYjE0OTQ0ZmZhYjgzNzkzYjc2NjZk****</VersionId> <DeleteMarker>true</DeleteMarker> <DeleteMarkerVersionId>THUQNRiBgICEoPiC0BYiIGMxZWJmYmMzYjE0OTQ0ZmZhYjgzNzkzYjc2NjZk****</DeleteMarkerVersionId> </Deleted> </DeleteResult>
SDK
SDK untuk operasi DeleteMultipleObjects tersedia dalam bahasa pemrograman berikut:
Alat baris perintah ossutil
Untuk informasi tentang perintah ossutil untuk operasi DeleteMultipleObjects, lihat delete-multiple-objects.
Referensi
Untuk menghapus satu file, lihat DeleteObject.
Untuk informasi tentang cara menghapus objek secara otomatis, lihat Lifecycle.
Kode error
Kode error | Kode status HTTP | Deskripsi |
InvalidDigest | 400 | Setelah Anda menentukan header permintaan Content-MD5, OSS menghitung nilai Content-MD5 dari isi pesan dan memeriksa apakah nilainya konsisten dengan nilai header permintaan Content-MD5. Jika nilainya tidak konsisten, error ini dikembalikan. |
MalformedXML | 400 |
|
FileImmutable | 409 | Error ini dikembalikan jika Anda mencoba menghapus atau mengubah data dalam bucket yang sedang dalam perlindungan. |