Topik ini menjelaskan cara menghapus satu objek atau beberapa objek sekaligus.
Objek yang telah dihapus tidak dapat dipulihkan. Berhati-hatilah saat menghapus objek.
Catatan penggunaan
Untuk menghapus suatu objek, Anda harus memiliki izin write pada bucket tempat objek tersebut disimpan.
Sebelum menjalankan kode contoh dalam topik ini, Anda harus membuat instans OSSClient dengan menggunakan metode seperti menggunakan nama domain kustom atau Security Token Service (STS). Untuk informasi selengkapnya, lihat Inisialisasi (Android SDK).
Hapus satu objek
Kode contoh berikut menunjukkan cara menghapus objek bernama exampleobject.txt dari bucket bernama examplebucket:
// Buat permintaan penghapusan.
// Tentukan nama bucket (misalnya, examplebucket) dan path lengkap objek (misalnya, exampledir/exampleobject.txt). Path lengkap objek tidak boleh mencakup nama bucket.
DeleteObjectRequest delete = new DeleteObjectRequest("examplebucket", "exampledir/exampleobject.txt");
// Hapus objek secara asinkron.
OSSAsyncTask deleteTask = oss.asyncDeleteObject(delete, new OSSCompletedCallback<DeleteObjectRequest, DeleteObjectResult>() {
@Override
public void onSuccess(DeleteObjectRequest request, DeleteObjectResult result) {
Log.d("asyncDeleteObject", "success!");
}
@Override
public void onFailure(DeleteObjectRequest request, ClientException clientExcepion, ServiceException serviceException) {
// Terjadi kesalahan permintaan.
if (clientExcepion != null) {
// Terjadi exception pada client, misalnya exception jaringan.
clientExcepion.printStackTrace();
}
if (serviceException != null) {
// Terjadi exception pada server.
Log.e("ErrorCode", serviceException.getErrorCode());
Log.e("RequestId", serviceException.getRequestId());
Log.e("HostId", serviceException.getHostId());
Log.e("RawMessage", serviceException.getRawMessage());
}
}
});Hapus beberapa objek sekaligus
Anda dapat menghapus hingga 1.000 objek sekaligus.
Hasil penghapusan dapat dikembalikan dalam dua mode berikut. Pilih mode pengembalian sesuai kebutuhan Anda.
verbose (default): Jika isQuiet tidak ditentukan atau diatur ke false, daftar semua objek yang dihapus akan dikembalikan.
quiet: Jika isQuiet diatur ke true, hanya daftar objek yang gagal dihapus yang dikembalikan.
Kode contoh berikut menunjukkan cara menghapus beberapa objek tertentu dari bucket bernama examplebucket dan mengembalikan hasil dalam mode quiet:
// Tentukan path lengkap objek yang ingin dihapus. Path lengkap objek tidak boleh mencakup nama bucket.
List<String> objectKeys = new ArrayList<String>();
objectKeys.add("exampleobject.txt");
objectKeys.add("testfolder/sampleobject.txt");
// Atur mode ke mode dasar untuk hanya mengembalikan daftar file yang gagal dihapus.
DeleteMultipleObjectRequest request = new DeleteMultipleObjectRequest("examplebucket", objectKeys, true);
oss.asyncDeleteMultipleObject(request, new OSSCompletedCallback<DeleteMultipleObjectRequest, DeleteMultipleObjectResult>() {
@Override
public void onSuccess(DeleteMultipleObjectRequest request, DeleteMultipleObjectResult result) {
Log.i("DeleteMultipleObject", "success");
}
@Override
public void onFailure(DeleteMultipleObjectRequest request, ClientException clientException, ServiceException serviceException) {
// Terjadi kesalahan permintaan.
if (clientException != null) {
// Terjadi exception pada client, misalnya exception jaringan.
clientException.printStackTrace();
}
if (serviceException != null) {
// Terjadi exception pada server.
Log.e("ErrorCode", serviceException.getErrorCode());
Log.e("RequestId", serviceException.getRequestId());
Log.e("HostId", serviceException.getHostId());
Log.e("RawMessage", serviceException.getRawMessage());
}
}
});Referensi
Hapus satu objek
Untuk informasi selengkapnya tentang Operasi API yang dapat Anda panggil untuk menghapus satu objek, lihat DeleteObject.
Hapus beberapa objek sekaligus
Untuk informasi tentang Operasi API yang dapat Anda panggil untuk menghapus beberapa objek sekaligus, lihat DeleteMultipleObjects.
Untuk informasi selengkapnya tentang cara menginisialisasi instans OSSClient, lihat Inisialisasi.