Layanan Penyimpanan Objek (OSS) menghasilkan log akses untuk mencatat akses ke sumber daya yang disimpan dalam bucket OSS. Setelah Anda mengaktifkan dan mengonfigurasi logging untuk suatu bucket, OSS akan menghasilkan log akses setiap jam berdasarkan aturan penamaan yang telah ditentukan, lalu menyimpannya ke bucket tertentu.
Catatan penggunaan
Topik ini menggunakan titik akhir publik wilayah China (Hangzhou). Jika Anda mengakses OSS dari layanan Alibaba Cloud lain yang berada di wilayah yang sama dengan OSS, gunakan titik akhir internal. Untuk informasi selengkapnya mengenai wilayah dan titik akhir OSS, lihat Wilayah dan titik akhir.
Pada topik ini, instans OSSClient dibuat menggunakan titik akhir OSS. Jika Anda ingin membuat instans OSSClient dengan nama domain kustom atau Security Token Service (STS), lihat Inisialisasi.
Untuk mengaktifkan penyimpanan log, Anda harus memiliki izin
oss:PutBucketLogging. Untuk melihat konfigurasi penyimpanan log, Anda harus memiliki izinoss:GetBucketLogging. Untuk menonaktifkan penyimpanan log, Anda harus memiliki izinoss:DeleteBucketLogging. Untuk informasi selengkapnya, lihat Berikan kebijakan akses kustom kepada RAM user.
Aktifkan logging untuk bucket
Kode contoh berikut menunjukkan cara mengaktifkan logging untuk bucket:
using Aliyun.OSS;
using Aliyun.OSS.Common;
// Tetapkan Endpoint. Contoh ini menggunakan https://oss-cn-hangzhou.aliyuncs.com, yaitu Endpoint publik untuk wilayah China (Hangzhou). Untuk wilayah lain, tetapkan Endpoint sesuai nilai aktualnya.
var endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
var accessKeyId = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_ID");
var accessKeySecret = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_SECRET");
// Tetapkan nama bucket yang akan diaktifkan fitur penyimpanan log-nya, misalnya examplebucket.
var bucketName = "examplebucket";
// Tetapkan bucket tujuan untuk menyimpan file log. Bucket tujuan dapat sama atau berbeda dari bucket sumber.
var targetBucketName = "destbucket";
// Tetapkan wilayah tempat bucket berada. Contoh ini menggunakan cn-hangzhou, yaitu ID wilayah China (Hangzhou).
const string region = "cn-hangzhou";
// Buat instans ClientConfiguration dan ubah parameter default sesuai kebutuhan.
var conf = new ClientConfiguration();
// Gunakan Signature Version 4.
conf.SignatureVersion = SignatureVersion.V4;
// Buat instans OssClient.
var client = new OssClient(endpoint, accessKeyId, accessKeySecret, conf);
client.SetRegion(region);
try
{
// Tetapkan folder tempat file log disimpan menjadi log/. Jika Anda menentukan folder ini, file log akan disimpan ke folder yang ditentukan dalam bucket tujuan. Jika tidak ditentukan, file log akan disimpan ke direktori root bucket tujuan.
var request = new SetBucketLoggingRequest(bucketName, targetBucketName, "log/");
// Aktifkan fitur penyimpanan log.
client.SetBucketLogging(request);
Console.WriteLine("Set bucket:{0} Logging berhasil ", bucketName);
}
catch (OssException ex)
{
Console.WriteLine("Gagal dengan kode kesalahan: {0}. Pesan kesalahan: {1}. \nRequestID:{2}\tHostID:{3}",
ex.ErrorCode, ex.Message, ex.RequestId, ex.HostId);
}
catch (Exception ex)
{
Console.WriteLine("Gagal dengan pesan kesalahan: {0}", ex.Message);
}Kueri konfigurasi logging bucket
Kode contoh berikut menunjukkan cara melakukan kueri terhadap konfigurasi logging bucket:
using Aliyun.OSS;
using Aliyun.OSS.Common;
// Tetapkan Endpoint. Contoh ini menggunakan https://oss-cn-hangzhou.aliyuncs.com, yaitu Endpoint publik untuk wilayah China (Hangzhou). Untuk wilayah lain, tetapkan Endpoint sesuai nilai aktualnya.
var endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
var accessKeyId = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_ID");
var accessKeySecret = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_SECRET");
// Tetapkan nama bucket, misalnya examplebucket.
var bucketName = "examplebucket";
// Tetapkan wilayah tempat bucket berada. Contoh ini menggunakan cn-hangzhou, yaitu ID wilayah China (Hangzhou).
const string region = "cn-hangzhou";
// Buat instans ClientConfiguration dan ubah parameter default sesuai kebutuhan.
var conf = new ClientConfiguration();
// Gunakan Signature Version 4.
conf.SignatureVersion = SignatureVersion.V4;
// Buat instans OssClient.
var client = new OssClient(endpoint, accessKeyId, accessKeySecret, conf);
client.SetRegion(region);
try
{
// Lihat konfigurasi penyimpanan log.
var result = client.GetBucketLogging(bucketName);
Console.WriteLine("Get bucket:{0} Logging berhasil, awalan:{1}", bucketName, result.TargetPrefix);
}
catch (OssException ex)
{
Console.WriteLine("Gagal dengan kode kesalahan: {0}. Pesan kesalahan: {1}. \nRequestID:{2}\tHostID:{3}",
ex.ErrorCode, ex.Message, ex.RequestId, ex.HostId);
}
catch (Exception ex)
{
Console.WriteLine("Gagal dengan pesan kesalahan: {0}", ex.Message);
}Nonaktifkan logging untuk bucket
Kode contoh berikut menunjukkan cara menonaktifkan logging untuk bucket:
using Aliyun.OSS;
using Aliyun.OSS.Common;
// Tetapkan Endpoint. Contoh ini menggunakan https://oss-cn-hangzhou.aliyuncs.com, yaitu Endpoint publik untuk wilayah China (Hangzhou). Untuk wilayah lain, tetapkan Endpoint sesuai nilai aktualnya.
var endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
var accessKeyId = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_ID");
var accessKeySecret = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_SECRET");
// Tetapkan nama bucket, misalnya examplebucket.
var bucketName = "examplebucket";
// Tetapkan wilayah tempat bucket berada. Contoh ini menggunakan cn-hangzhou, yaitu ID wilayah China (Hangzhou).
const string region = "cn-hangzhou";
// Buat instans ClientConfiguration dan ubah parameter default sesuai kebutuhan.
var conf = new ClientConfiguration();
// Gunakan Signature Version 4.
conf.SignatureVersion = SignatureVersion.V4;
// Buat instans OssClient.
var client = new OssClient(endpoint, accessKeyId, accessKeySecret, conf);
client.SetRegion(region);
try
{
// Nonaktifkan fitur penyimpanan log.
client.DeleteBucketLogging(bucketName);
Console.WriteLine("Delete bucket:{0} Logging berhasil ", bucketName);
}
catch (OssException ex)
{
Console.WriteLine("Gagal dengan kode kesalahan: {0}. Pesan kesalahan: {1}. \nRequestID:{2}\tHostID:{3}",
ex.ErrorCode, ex.Message, ex.RequestId, ex.HostId);
}
catch (Exception ex)
{
Console.WriteLine("Gagal dengan pesan kesalahan: {0}", ex.Message);
}Referensi
Untuk kode contoh lengkap mengenai penyimpanan log, lihat contoh di GitHub.
Untuk informasi selengkapnya mengenai operasi API yang dapat dipanggil untuk mengaktifkan logging pada bucket, lihat PutBucketLogging.
Untuk informasi selengkapnya mengenai operasi API yang dapat dipanggil untuk melakukan kueri terhadap konfigurasi logging bucket, lihat GetBucketLogging.
Untuk informasi selengkapnya mengenai operasi API yang dapat dipanggil untuk menonaktifkan logging pada bucket, lihat DeleteBucketLogging.