Fitur bucket inventory mengekspor metadata objek dalam suatu bucket—seperti jumlah, ukuran, kelas penyimpanan, dan status enkripsi—secara terjadwal. Untuk bucket yang berisi banyak objek, gunakan bucket inventory alih-alih operasi API GetBucket (ListObjects). Berbeda dengan GetBucket (ListObjects), bucket inventory dijalankan secara asinkron sesuai jadwal.
Dengan bucket inventory, Anda dapat mengonfigurasi:
Bidang metadata objek yang disertakan dalam laporan
Apakah akan menyertakan semua versi objek atau hanya versi terkini
Bucket tujuan tempat daftar inventaris disimpan
Frekuensi ekspor (mingguan)
Enkripsi untuk file daftar inventaris
Topik ini menjelaskan cara menjalankan perintah inventory di ossutil untuk membuat, mengkueri, menampilkan daftar, dan menghapus inventaris bucket.
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Izin
oss:PutBucketInventoryuntuk membuat inventarisIzin
oss:GetBucketInventoryuntuk mengkueri inventarisIzin
oss:DeleteBucketInventoryuntuk menghapus inventarisPeran Resource Access Management (RAM) yang diberi otorisasi untuk membaca objek dari bucket sumber dan menulis ke bucket tujuan (diperlukan saat membuat inventaris)
Untuk informasi tentang cara menyambungkan izin ke RAM user, lihat Attach a custom policy to a RAM user.
Catatan penggunaan
Untuk ossutil versi 1.6.16 dan yang lebih baru, gunakan
ossutillangsung sebagai nama biner di sistem operasi apa pun. Untuk ossutil versi sebelum 1.6.16, gunakan nama biner yang spesifik untuk sistem operasi tersebut. Untuk detailnya, lihat ossutil command reference.Untuk informasi selengkapnya tentang fitur bucket inventory, lihat Bucket inventory.
Membuat inventaris
Membuat inventaris mencakup tiga langkah: menyiapkan peran RAM, menulis file konfigurasi XML, dan menjalankan perintah put.
Langkah 1: Membuat peran RAM
Buat peran RAM dan berikan izin untuk membaca semua objek dari bucket sumber serta menulis objek ke bucket tujuan. Untuk detailnya, lihat Create a RAM role for a trusted Alibaba Cloud service.
Langkah 2: Menulis file konfigurasi XML
Buat file XML lokal yang mendefinisikan konfigurasi inventaris. Contoh berikut mendefinisikan inventaris bernama inventorytest untuk bucket examplebucket. OSS mengekspor metadata untuk semua objek dengan awalan dir/ ke destbucket secara mingguan. Bidang yang diekspor mencakup kelas penyimpanan, tanggal modifikasi terakhir, status unggah multi-bagian, ETag, status enkripsi, dan ukuran. Daftar inventaris dienkripsi menggunakan SSE-OSS.
<?xml version="1.0" encoding="UTF-8"?>
<InventoryConfiguration>
<Id>inventorytest</Id>
<IsEnabled>true</IsEnabled>
<Filter>
<Prefix>dir/</Prefix>
</Filter>
<Destination>
<OSSBucketDestination>
<Format>CSV</Format>
<AccountId>1746495857602745</AccountId>
<RoleArn>acs:ram::174649585760****:role/AliyunOSSRole</RoleArn>
<Bucket>acs:oss:::destbucket</Bucket>
<Encryption>
<SSE-OSS></SSE-OSS>
</Encryption>
</OSSBucketDestination>
</Destination>
<Schedule>
<Frequency>Weekly</Frequency>
</Schedule>
<IncludedObjectVersions>All</IncludedObjectVersions>
<OptionalFields>
<Field>LastModifiedDate</Field>
<Field>StorageClass</Field>
<Field>IsMultipartUploaded</Field>
<Field>ETag</Field>
<Field>EncryptionStatus</Field>
<Field>Size</Field>
</OptionalFields>
</InventoryConfiguration>Bidang XML utama adalah:
| Field | Description |
|---|---|
Id | Pengidentifikasi unik untuk inventaris ini. Jika inventaris dengan ID yang sama sudah ada, permintaan akan mengembalikan kode status HTTP 409. |
IsEnabled | Apakah inventaris aktif. Atur ke true untuk mengaktifkan. |
Filter > Prefix | (Opsional) Ekspor metadata hanya untuk objek yang namanya mengandung awalan ini. Abaikan untuk menyertakan semua objek. |
Format | Format file output. Nilai yang didukung: CSV. |
AccountId | ID Akun Alibaba Cloud yang memiliki bucket tujuan. |
RoleArn | ARN dari peran RAM yang diberi otorisasi untuk menulis ke bucket tujuan. |
Bucket | Bucket tujuan dalam format acs:oss:::<bucket-name>. |
Encryption | (Opsional) Metode enkripsi untuk daftar inventaris. Metode yang didukung: SSE-OSS. |
Frequency | Jadwal ekspor. Nilai yang didukung: Weekly. |
IncludedObjectVersions | Versi objek yang disertakan. Nilai yang didukung: All (semua versi), Current (hanya versi terkini). |
OptionalFields > Field | Bidang metadata tambahan yang disertakan. Nilai yang didukung: LastModifiedDate, StorageClass, IsMultipartUploaded, ETag, EncryptionStatus, Size. |
Langkah 3: Jalankan perintah put
Sintaks:
ossutil inventory --method put oss://<bucket-name> <local-xml-file>Parameter:
| Parameter | Description |
|---|---|
bucket-name | Nama bucket tempat inventaris akan dibuat. |
local-xml-file | Path ke file konfigurasi XML lokal, misalnya localfile.xml. |
Contoh:
ossutil inventory --method put oss://examplebucket localfile.xmlOutput yang diharapkan:
0.299514(s) elapsedBeberapa inventaris dapat dibuat untuk satu bucket. Setiap inventaris diidentifikasi secara unik melaluiId-nya. JikaIdyang ditentukan sudah ada, permintaan akan mengembalikan kode status HTTP 409.
Mengkueri inventaris tertentu
Sintaks:
ossutil inventory --method get oss://<bucket-name> <inventory-id> [--local_xml_file <file>]Parameter:
| Parameter | Description |
|---|---|
bucket-name | Nama bucket. |
inventory-id | ID inventaris yang akan dikueri. |
--local_xml_file | (Opsional) File lokal untuk menyimpan konfigurasi inventaris. Jika tidak ditentukan, output akan ditampilkan di terminal. |
Contoh:
ossutil inventory --method get oss://examplebucket inventorytest localfile.txtOutput yang diharapkan:
0.212407(s) elapsedMenampilkan daftar semua inventaris untuk suatu bucket
Sintaks:
ossutil inventory --method list oss://<bucket-name> [--local_xml_file <file>] [--marker <value>]Parameter:
| Parameter | Description |
|---|---|
bucket-name | Nama bucket. |
--local_xml_file | (Opsional) File lokal untuk menyimpan daftar inventaris. Jika tidak ditentukan, output akan ditampilkan di terminal. |
--marker | (Opsional) Kondisi filter berbasis awalan untuk inventaris. Daftar inventaris hanya dihasilkan untuk objek yang namanya mengandung awalan yang ditentukan. Jika tidak ditentukan, daftar inventaris dihasilkan untuk semua objek dalam bucket. |
Contoh:
ossutil inventory --method list oss://examplebucket localfile.txt destOutput yang diharapkan:
0.216897(s) elapsedMenghapus inventaris
Sintaks:
ossutil inventory --method delete oss://<bucket-name> <inventory-id>Parameter:
| Parameter | Description |
|---|---|
bucket-name | Nama bucket. |
inventory-id | ID inventaris yang akan dihapus. |
Contoh:
ossutil inventory --method delete oss://examplebucket inventorytestOutput yang diharapkan:
0.212407(s) elapsedOpsi umum
Untuk mengakses bucket di wilayah berbeda atau yang dimiliki oleh Akun Alibaba Cloud lain, tambahkan opsi terkait ke perintah inventory apa pun:
| Option | Description |
|---|---|
-e <endpoint> | Titik akhir wilayah tempat bucket berada, misalnya oss-cn-hangzhou.aliyuncs.com. |
-i <AccessKey-ID> | ID AccessKey dari akun yang memiliki bucket. |
-k <AccessKey-secret> | Rahasia AccessKey dari akun yang memiliki bucket. |
Contoh — membuat inventaris untuk bucket di wilayah China (Hangzhou) yang dimiliki oleh akun berbeda:
ossutil inventory --method put oss://examplebucket local_xml_file -e oss-cn-hangzhou.aliyuncs.com -i yourAccessKeyID -k yourAccessKeySecretUntuk daftar lengkap opsi umum, lihat Common options.