Mengakses Object Storage Service (OSS) menghasilkan banyak access log. Anda dapat menggunakan fitur penyimpanan log untuk membuat file log per jam berdasarkan konvensi penamaan tetap dan menyimpannya ke bucket tertentu.
Usage notes
Sebelum menjalankan kode contoh dalam topik ini, Anda harus membuat instans OSSClient dengan metode seperti menggunakan nama domain kustom atau Security Token Service (STS). Untuk informasi selengkapnya, lihat Initialization (Android SDK).
Setelah memanggil operasi API untuk mengaktifkan atau menonaktifkan penyimpanan log, refresh halaman untuk melihat perubahan tersebut. Konfigurasi yang diperbarui tidak akan muncul jika Anda hanya berpindah tab.
Aktifkan log storage
Kode berikut menunjukkan cara mengaktifkan fitur penyimpanan log.
PutBucketLoggingRequest request = new PutBucketLoggingRequest();
// Tentukan bucket sumber tempat logging akses diaktifkan.
request.setBucketName("yourSourceBucketName");
// Tentukan bucket tujuan untuk menyimpan access log.
// Bucket tujuan dan bucket sumber harus berada di wilayah yang sama. Bucket sumber dan tujuan bisa sama atau berbeda.
request.setTargetBucketName("yourTargetBucketName");
// Atur folder tempat file log disimpan.
request.setTargetPrefix("<yourTargetPrefix>");
OSSAsyncTask task = oss.asyncPutBucketLogging(request, new OSSCompletedCallback<PutBucketLoggingRequest, PutBucketLoggingResult>() {
@Override
public void onSuccess(PutBucketLoggingRequest request, PutBucketLoggingResult result) {
OSSLog.logInfo("code::"+result.getStatusCode());
}
@Override
public void onFailure(PutBucketLoggingRequest request, ClientException clientException, ServiceException serviceException) {
OSSLog.logError("error: "+serviceException.getRawMessage());
}
});
task.waitUntilFinished();Lihat konfigurasi log storage
Kode berikut menunjukkan cara melihat konfigurasi penyimpanan log.
Jika pemanggilan berhasil, output berada dalam format `testBucket*path`. Dalam format ini, `testBucket` sebelum tanda bintang (*) adalah nama bucket, dan `path` setelah tanda bintang adalah jalur penyimpanan.
GetBucketLoggingRequest request = new GetBucketLoggingRequest();
request.setBucketName("yourSourceBucketName");
OSSAsyncTask task = oss.asyncGetBucketLogging(request, new OSSCompletedCallback<GetBucketLoggingRequest, GetBucketLoggingResult>() {
@Override
public void onSuccess(GetBucketLoggingRequest request, GetBucketLoggingResult result) {
Log.i("i", "info: " + result.getTargetBucketName()+"*"+result.getTargetPrefix());
}
@Override
public void onFailure(GetBucketLoggingRequest request, ClientException clientException, ServiceException serviceException) {
// Terjadi error pada permintaan.
if (clientException != null) {
// Exception pada client, seperti error jaringan.
clientException.printStackTrace();
}
if (serviceException != null) {
// Exception pada server.
Log.e("ErrorCode", serviceException.getErrorCode());
Log.e("RequestId", serviceException.getRequestId());
Log.e("HostId", serviceException.getHostId());
Log.e("RawMessage", serviceException.getRawMessage());
}
}
});
task.waitUntilFinished();Nonaktifkan log storage
Kode berikut menunjukkan cara menonaktifkan fitur penyimpanan log.
DeleteBucketLoggingRequest request = new DeleteBucketLoggingRequest();
request.setBucketName("yourSourceBucketName");
OSSAsyncTask task = oss.asyncDeleteBucketLogging(request, new OSSCompletedCallback<DeleteBucketLoggingRequest, DeleteBucketLoggingResult>() {
@Override
public void onSuccess(DeleteBucketLoggingRequest request, DeleteBucketLoggingResult result) {
Log.i("i", "code:"+result.getStatusCode());
}
@Override
public void onFailure(DeleteBucketLoggingRequest request, ClientException clientException, ServiceException serviceException) {
// Terjadi error pada permintaan.
if (clientException != null) {
// Exception pada client, seperti error jaringan.
clientException.printStackTrace();
}
if (serviceException != null) {
// Exception pada server.
Log.e("ErrorCode", serviceException.getErrorCode());
Log.e("RequestId", serviceException.getRequestId());
Log.e("HostId", serviceException.getHostId());
Log.e("RawMessage", serviceException.getRawMessage());
}
}
});
task.waitUntilFinished();
Referensi
Untuk kode contoh lengkap mengenai penyimpanan log, lihat contoh di GitHub.
Untuk informasi selengkapnya mengenai operasi API untuk mengaktifkan penyimpanan log, lihat PutBucketLogging.
Untuk informasi selengkapnya mengenai operasi API untuk melihat konfigurasi penyimpanan log, lihat GetBucketLogging.
Untuk informasi selengkapnya mengenai operasi API untuk menonaktifkan penyimpanan log, lihat DeleteBucketLogging.
Untuk informasi selengkapnya mengenai cara menginisialisasi instans OSSClient, lihat Cara menginisialisasi instans OSSClient untuk Android.