Beberapa data yang diunggah ke Object Storage Service (OSS) mungkin jarang diakses tetapi tetap perlu disimpan dalam cold storage karena persyaratan kepatuhan atau arsip. Anda dapat menghapus data yang tidak lagi diperlukan secara batch untuk mengurangi biaya penyimpanan. Dalam kasus ini, Anda dapat mengonfigurasi aturan lifecycle berdasarkan waktu modifikasi terakhir objek untuk secara berkala mengubah kelas penyimpanan objek dari hot ke cold atau menghapus objek guna mengurangi biaya penyimpanan.
Catatan penggunaan
Sebelum mengonfigurasi aturan lifecycle berdasarkan waktu modifikasi terakhir objek, pastikan Anda memahami fitur ini terlebih dahulu. Untuk informasi selengkapnya, lihat Aturan lifecycle berdasarkan waktu modifikasi terakhir.
Anda harus memiliki izin
oss:PutBucketLifecycleuntuk menetapkan aturan lifecycle, izinoss:GetBucketLifecycleuntuk melihat aturan lifecycle, dan izinoss:DeleteBucketLifecycleuntuk menghapus semua aturan lifecycle. Untuk informasi selengkapnya, lihat Berikan kebijakan akses kustom kepada RAM user.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).
Konfigurasikan aturan lifecycle untuk bucket
Kode contoh berikut menunjukkan cara mengonfigurasi aturan lifecycle berdasarkan waktu modifikasi terakhir objek untuk bucket bernama examplebucket. Untuk memodifikasi aturan lifecycle, ikuti petunjuk yang dijelaskan dalam Bagaimana cara mengubah konfigurasi satu atau beberapa aturan lifecycle?
PutBucketLifecycleRequest request = new PutBucketLifecycleRequest();
request.setBucketName("examplebucket");
BucketLifecycleRule rule1 = new BucketLifecycleRule();
// Setel ID aturan dan awalan file.
rule1.setIdentifier("1");
rule1.setPrefix("A");
// Tentukan apakah aturan lifecycle akan dieksekusi. Jika nilainya true, OSS akan mengeksekusi aturan secara berkala. Jika nilainya false, OSS akan mengabaikan aturan tersebut.
rule1.setStatus(true);
// Hapus objek 200 hari setelah waktu modifikasi terakhir.
rule1.setDays("200");
// Pindahkan objek ke kelas penyimpanan Archive setelah 30 hari.
rule1.setArchiveDays("30");
// Hapus unggah multi-bagian yang belum lengkap setelah 3 hari.
rule1.setMultipartDays("3");
// Pindahkan objek ke kelas penyimpanan Infrequent Access (IA) setelah 15 hari.
rule1.setIADays("15");
BucketLifecycleRule rule2 = new BucketLifecycleRule();
rule2.setIdentifier("2");
rule2.setPrefix("B");
rule2.setStatus(true);
rule2.setDays("300");
rule2.setArchiveDays("30");
rule2.setMultipartDays("3");
rule2.setIADays("15");
ArrayList<BucketLifecycleRule> lifecycleRules = new ArrayList<BucketLifecycleRule>();
lifecycleRules.add(rule1);
lifecycleRules.add(rule2);
request.setLifecycleRules(lifecycleRules);
OSSAsyncTask task = oss.asyncPutBucketLifecycle(request, new OSSCompletedCallback<PutBucketLifecycleRequest, PutBucketLifecycleResult>() {
@Override
public void onSuccess(PutBucketLifecycleRequest request, PutBucketLifecycleResult result) {
OSSLog.logInfo("code::"+result.getStatusCode());
}
@Override
public void onFailure(PutBucketLifecycleRequest request, ClientException clientException, ServiceException serviceException) {
OSSLog.logError("error: "+serviceException.getRawMessage());
}
});
task.waitUntilFinished();Kueri aturan lifecycle bucket
Kode berikut menunjukkan cara melihat aturan lifecycle untuk bucket bernama examplebucket.
GetBucketLifecycleRequest request = new GetBucketLifecycleRequest();
request.setBucketName("examplebucket");
OSSAsyncTask task = oss.asyncGetBucketLifecycle(request, new OSSCompletedCallback<GetBucketLifecycleRequest, GetBucketLifecycleResult>() {
@Override
public void onSuccess(GetBucketLifecycleRequest request, GetBucketLifecycleResult result) {
ArrayList<BucketLifecycleRule> list = result.getlifecycleRules();
for (BucketLifecycleRule rule : list){
OSSLog.logInfo("info: " + rule.getIdentifier());
}
}
@Override
public void onFailure(GetBucketLifecycleRequest request, ClientException clientException, ServiceException serviceException) {
OSSLog.logError("error: "+serviceException.getRawMessage());
}
});
task.waitUntilFinished();Hapus aturan lifecycle bucket
Kode berikut menunjukkan cara menghapus semua aturan lifecycle untuk bucket bernama examplebucket. Untuk menghapus satu atau beberapa aturan lifecycle, lihat Bagaimana cara menghapus satu atau beberapa aturan lifecycle?.
DeleteBucketLifecycleRequest request = new DeleteBucketLifecycleRequest();
request.setBucketName("examplebucket");
OSSAsyncTask task = oss.asyncDeleteBucketLifecycle(request,"examplebucket" new OSSCompletedCallback<DeleteBucketLifecycleRequest, DeleteBucketLifecycleResult>() {
@Override
public void onSuccess(DeleteBucketLifecycleRequest request, DeleteBucketLifecycleResult result) {
OSSLog.logInfo("code : "+result.getStatusCode());
}
@Override
public void onFailure(DeleteBucketLifecycleRequest request, ClientException clientException, ServiceException serviceException) {
OSSLog.logError("error: "+serviceException.getRawMessage());
}
});
task.waitUntilFinished();Referensi
Untuk kode contoh lengkap yang digunakan untuk mengelola aturan lifecycle, kunjungi GitHub.
Untuk informasi selengkapnya tentang Operasi API yang dapat Anda panggil untuk mengonfigurasi aturan lifecycle, lihat PutBucketLifecycle.
Untuk informasi selengkapnya tentang Operasi API yang dapat Anda panggil untuk mengkueri aturan lifecycle, lihat GetBucketLifecycle.
Untuk informasi selengkapnya tentang Operasi API yang dapat Anda panggil untuk menghapus aturan lifecycle, lihat DeleteBucketLifecycle.
Untuk informasi selengkapnya tentang cara menginisialisasi instans OSSClient, lihat Inisialisasi.