Topik ini menjelaskan cara menambahkan, melihat, mencantumkan, dan menghapus konfigurasi daftar bucket.
Catatan penggunaan
Pada topik ini digunakan titik akhir publik wilayah China (Hangzhou). Jika Anda ingin 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 menggunakan nama domain kustom atau Security Token Service (STS), lihat Inisialisasi.
Pastikan Anda memiliki izin untuk menambahkan, melihat, mencantumkan, dan menghapus konfigurasi inventaris. Pemilik bucket secara default memiliki izin tersebut. Jika Anda tidak memiliki izin ini, mintalah kepada pemilik bucket.
Anda dapat mengonfigurasi hingga 1.000 aturan inventaris untuk satu bucket.
Bucket sumber tempat Anda mengonfigurasi aturan inventaris dan bucket tujuan tempat file manifest disimpan harus berada di wilayah yang sama.
Tambahkan konfigurasi inventaris
Kode berikut menunjukkan cara menambahkan konfigurasi inventaris untuk sebuah bucket.
using Aliyun.OSS;
using Aliyun.OSS.Common;
// Tetapkan endpoint ke titik akhir wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), tetapkan endpoint ke https://oss-cn-hangzhou.aliyuncs.com.
var endpoint = "yourEndpoint";
// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah ditetapkan.
var accessKeyId = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_ID");
var accessKeySecret = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_SECRET");
// Tentukan nama bucket.
var bucketName = "examplebucket";
// Tentukan AccountId yang diberikan oleh pemilik bucket.
var accountId ="yourDestinationBucketAccountId";
// Tentukan nama role yang memiliki izin untuk membaca semua file di bucket sumber dan menulis file ke bucket tujuan.
var roleArn ="yourDestinationBucketRoleArn";
// Tentukan nama bucket tempat hasil inventaris disimpan.
var destBucketName ="yourDestinationBucketName";
// Tentukan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), tetapkan wilayah ke cn-hangzhou.
const string region = "cn-hangzhou";
// Buat instans ClientConfiguration dan ubah parameter default sesuai kebutuhan.
var conf = new ClientConfiguration();
// Tetapkan versi signature ke V4.
conf.SignatureVersion = SignatureVersion.V4;
// Buat instans OssClient.
var client = new OssClient(endpoint, accessKeyId, accessKeySecret, conf);
client.SetRegion(region);
try
{
// Tambahkan inventaris bucket.
var config = new InventoryConfiguration();
// Tetapkan nama aturan inventaris.
config.Id = "report1";
// Bendera yang menunjukkan apakah konfigurasi inventaris diaktifkan. Nilai yang valid: true dan false. Tetapkan nilai ke true untuk mengaktifkan konfigurasi inventaris.
config.IsEnabled = true;
// Tetapkan aturan filter inventaris untuk memfilter objek berdasarkan awalan.
config.Filter = new InventoryFilter("filterPrefix");
// Buat konfigurasi bucket tujuan untuk inventaris.
config.Destination = new InventoryDestination();
config.Destination.OSSBucketDestination = new InventoryOSSBucketDestination();
// Tetapkan format inventaris.
config.Destination.OSSBucketDestination.Format = InventoryFormat.CSV;
// AccountId pengguna yang memiliki bucket tujuan tempat hasil inventaris disimpan.
config.Destination.OSSBucketDestination.AccountId = accountId;
// roleArn untuk bucket tujuan tempat hasil inventaris disimpan.
config.Destination.OSSBucketDestination.RoleArn = roleArn;
// Nama bucket tujuan tempat hasil inventaris disimpan.
config.Destination.OSSBucketDestination.Bucket = destBucketName;
// Tetapkan awalan path penyimpanan untuk hasil inventaris.
config.Destination.OSSBucketDestination.Prefix = "prefix1";
// Tetapkan jadwal pembuatan inventaris. Contoh berikut adalah untuk pembuatan mingguan. Weekly berarti pembuatan mingguan, dan Daily berarti pembuatan harian.
config.Schedule = new InventorySchedule(InventoryFrequency.Daily);
// Tetapkan versi objek yang disertakan dalam inventaris ke versi saat ini. Jika Anda menetapkan nilai ini ke InventoryIncludedObjectVersions.All, semua versi objek akan disertakan. Ini hanya berlaku ketika Pengendalian versi diaktifkan.
config.IncludedObjectVersions = InventoryIncludedObjectVersions.All;
// Tetapkan properti objek yang disertakan dalam inventaris.
config.OptionalFields.Add(InventoryOptionalField.Size);
config.OptionalFields.Add(InventoryOptionalField.LastModifiedDate);
config.OptionalFields.Add(InventoryOptionalField.StorageClass);
config.OptionalFields.Add(InventoryOptionalField.IsMultipartUploaded);
config.OptionalFields.Add(InventoryOptionalField.EncryptionStatus);
config.OptionalFields.Add(InventoryOptionalField.ETag);
var req = new SetBucketInventoryConfigurationRequest(bucketName, config);
client.SetBucketInventoryConfiguration(req);
Console.WriteLine("Set bucket:{0} InventoryConfiguration succeeded", bucketName);
}
catch (OssException ex)
{
Console.WriteLine("Failed with error code: {0}; Error info: {1}. \nRequestID:{2}\tHostID:{3}",
ex.ErrorCode, ex.Message, ex.RequestId, ex.HostId);
}Lihat konfigurasi inventaris
Kode berikut menunjukkan cara melihat konfigurasi inventaris sebuah bucket:
using Aliyun.OSS;
using Aliyun.OSS.Common;
// Tetapkan endpoint ke titik akhir wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), tetapkan endpoint ke https://oss-cn-hangzhou.aliyuncs.com.
var endpoint = "yourEndpoint";
// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah ditetapkan.
var accessKeyId = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_ID");
var accessKeySecret = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_SECRET");
// Tentukan nama bucket.
var bucketName = "examplebucket";
// Tentukan nama aturan inventaris.
var id = "BucketInventoryConfigurationId";
// Tentukan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), tetapkan wilayah ke cn-hangzhou.
const string region = "cn-hangzhou";
// Buat instans ClientConfiguration dan ubah parameter default sesuai kebutuhan.
var conf = new ClientConfiguration();
// Tetapkan versi signature ke V4.
conf.SignatureVersion = SignatureVersion.V4;
// Buat instans OssClient.
var client = new OssClient(endpoint, accessKeyId, accessKeySecret, conf);
client.SetRegion(region);
try
{
// Lihat informasi konfigurasi inventaris untuk ID yang ditentukan.
var request = new GetBucketInventoryConfigurationRequest(bucketName, id);
// Dapatkan inventaris bucket.
var result = client.GetBucketInventoryConfiguration(request);
Console.WriteLine("Get bucket:{0} BucketInventoryConfiguration succeeded ", bucketName);
// Cetak informasi inventaris bucket.
Console.WriteLine("bucket InventoryConfiguration id: {0}; bucket InventoryConfiguration IsEnabled: {1}", result.Configuration.Id, result.Configuration.IsEnabled);
}
catch (OssException ex)
{
Console.WriteLine("Failed with error code: {0}; Error info: {1}. \nRequestID:{2}\tHostID:{3}",
ex.ErrorCode, ex.Message, ex.RequestId, ex.HostId);
}Cantumkan konfigurasi inventaris
Satu permintaan dapat mengambil maksimal 100 konfigurasi inventaris. Untuk mengambil lebih dari 100 konfigurasi inventaris, Anda harus mengirimkan beberapa permintaan. Gunakan token yang dikembalikan dari permintaan sebelumnya sebagai parameter untuk permintaan berikutnya.
Kode berikut menunjukkan cara mencantumkan konfigurasi inventaris sebuah bucket:
using Aliyun.OSS;
using Aliyun.OSS.Common;
// Tetapkan endpoint ke titik akhir wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), tetapkan endpoint ke https://oss-cn-hangzhou.aliyuncs.com.
var endpoint = "yourEndpoint";
// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah ditetapkan.
var accessKeyId = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_ID");
var accessKeySecret = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_SECRET");
// Tentukan nama bucket.
var bucketName = "examplebucket";
// Tentukan nama aturan inventaris.
var id = "BucketInventoryConfigurationId";
// Tentukan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), tetapkan wilayah ke cn-hangzhou.
const string region = "cn-hangzhou";
// Buat instans ClientConfiguration dan ubah parameter default sesuai kebutuhan.
var conf = new ClientConfiguration();
// Tetapkan versi signature ke V4.
conf.SignatureVersion = SignatureVersion.V4;
// Buat instans OssClient.
var client = new OssClient(endpoint, accessKeyId, accessKeySecret, conf);
client.SetRegion(region);
try
{
// Cantumkan item konfigurasi inventaris. Secara default, maksimal 100 hasil dicantumkan sekaligus. Jika terdapat lebih dari 100 konfigurasi, hasilnya dikembalikan dalam bentuk halaman. Kirimkan token untuk mencantumkan halaman berikutnya.
string continuationToken = null;
bool isTruncated = false;
do {
var request = new ListBucketInventoryConfigurationRequest(bucketName, continuationToken)
var result = client.ListBucketInventoryConfiguration(request);
Console.WriteLine("List bucket:{0} BucketInventoryConfiguration succeeded ", bucketName);
//Cetak informasi inventaris bucket.
for (var i = 0; i < result.Configurations.Count; i++) {
Console.WriteLine("bucket InventoryConfiguration id: {0}; bucket InventoryConfiguration IsEnabled: {1}", result.Configurations[i].Id, result.Configurations[i].IsEnabled);
}
continuationToken = result.NextContinuationToken;
isTruncated = result.IsTruncated;
} while (isTruncated)
}
catch (OssException ex)
{
Console.WriteLine("Failed with error code: {0}; Error info: {1}. \nRequestID:{2}\tHostID:{3}",
ex.ErrorCode, ex.Message, ex.RequestId, ex.HostId);
}Hapus konfigurasi inventaris
Kode berikut menunjukkan cara menghapus konfigurasi inventaris sebuah bucket:
using Aliyun.OSS;
using Aliyun.OSS.Common;
// Tetapkan endpoint ke titik akhir wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), tetapkan endpoint ke https://oss-cn-hangzhou.aliyuncs.com.
var endpoint = "yourEndpoint";
// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah ditetapkan.
var accessKeyId = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_ID");
var accessKeySecret = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_SECRET");
// Tentukan nama bucket.
var bucketName = "examplebucket";
// Tentukan nama aturan inventaris.
var id = "BucketInventoryConfigurationId";
// Tentukan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), tetapkan wilayah ke cn-hangzhou.
const string region = "cn-hangzhou";
// Buat instans ClientConfiguration dan ubah parameter default sesuai kebutuhan.
var conf = new ClientConfiguration();
// Tetapkan versi signature ke V4.
conf.SignatureVersion = SignatureVersion.V4;
// Buat instans OssClient.
var client = new OssClient(endpoint, accessKeyId, accessKeySecret, conf);
client.SetRegion(region);
try
{
// Hapus konfigurasi inventaris dengan ID yang ditentukan.
var request = new DeleteBucketInventoryConfigurationRequest(bucketName, id);
var result = client.DeleteBucketInventoryConfiguration(request);
Console.WriteLine("delete bucket:{0} BucketInventoryConfiguration succeeded ", bucketName);
}
catch (OssException ex)
{
Console.WriteLine("Failed with error code: {0}; Error info: {1}. \nRequestID:{2}\tHostID:{3}",
ex.ErrorCode, ex.Message, ex.RequestId, ex.HostId);
}Referensi
Untuk informasi selengkapnya mengenai operasi API untuk menambahkan konfigurasi inventaris sebuah bucket, lihat PutBucketInventory.
Untuk informasi selengkapnya mengenai operasi API untuk melihat konfigurasi inventaris sebuah bucket, lihat GetBucketInventory.
Untuk informasi selengkapnya mengenai operasi API untuk mencantumkan konfigurasi inventaris sebuah bucket, lihat ListBucketInventory.
Untuk informasi selengkapnya mengenai operasi API untuk menghapus konfigurasi inventaris sebuah bucket, lihat DeleteBucketInventory.