Gunakan PutBucketInventory untuk mengonfigurasi aturan inventaris pada sebuah bucket.
Catatan
Inventaris memungkinkan Anda memperoleh informasi tentang objek dalam sebuah bucket, seperti jumlah objek, ukuran, kelas penyimpanan, dan status enkripsi. Saat mengonfigurasi aturan inventaris, perhatikan hal-hal berikut:
Sebelum mengonfigurasi aturan inventaris, Anda harus membuat Peran RAM yang memiliki izin untuk membaca semua objek dari bucket sumber dan menulis objek ke bucket tujuan. Disarankan menggunakan Konsol OSS untuk mengonfigurasi aturan inventaris pertama Anda karena konsol akan membantu membuat Peran RAM dengan izin yang diperlukan. Untuk detail tentang izin yang diperlukan untuk Peran RAM, lihat bucket inventory.
Anda dapat mengonfigurasi hingga 1.000 aturan inventaris untuk satu bucket.
Bucket sumber dan bucket tujuan untuk file inventaris yang diekspor harus berada di wilayah yang sama.
Untuk mengaktifkan inventaris inkremental, hubungi technical support. Fitur ini hanya didukung di wilayah Meksiko.
Izin
Secara default, Akun Alibaba Cloud memiliki izin penuh. Pengguna RAM atau Peran RAM di bawah Akun Alibaba Cloud tidak memiliki izin apa pun secara default. Akun Alibaba Cloud atau administrator akun harus memberikan izin operasi melalui kebijakan RAM atau Bucket Policy.
|
API |
Action |
Deskripsi |
|
PutBucketInventory |
oss:PutBucketInventory |
Mengonfigurasi inventaris untuk sebuah bucket. |
Sintaksis permintaan
Parameter query string 'inventoryId' wajib digunakan. Nilainya harus sesuai dengan elemen 'Id' dalam badan permintaan.
Opsi LastModifyBeginTimeStamp, LastModifyEndTimeStamp, LowerSizeBound, UpperSizeBound, dan StorageClass hanya dapat digunakan di wilayah China (Qingdao), China (Hohhot), dan Jerman (Frankfurt).
PUT /?inventory&inventoryId=report1 HTTP/1.1
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Date: Mon, 31 Oct 2016 12:00:00 GMT
Authorization: authorization string
Content-Length: length
<?xml version="1.0" encoding="UTF-8"?>
<InventoryConfiguration>
<Id>report1</Id>
<IsEnabled>true</IsEnabled>
<Destination>
<OSSBucketDestination>
<Format>CSV</Format>
<AccountId>1000000000000000</AccountId>
<RoleArn>acs:ram::1000000000000000:role/AliyunOSSRole</RoleArn>
<Bucket>acs:oss:::destination-bucket</Bucket>
<Prefix>prefix1</Prefix>
<Encryption>
<SSE-KMS>
<KeyId>keyId</KeyId>
</SSE-KMS>
</Encryption>
</OSSBucketDestination>
</Destination>
<Schedule>
<Frequency>Monthly</Frequency>
<DayOfMonth>1</DayOfMonth>
</Schedule>
<IncludedObjectVersions>All</IncludedObjectVersions>
<OptionalFields>
<Field>Size</Field>
<Field>LastModifiedDate</Field>
<Field>TransitionTime</Field>
<Field>ETag</Field>
<Field>StorageClass</Field>
<Field>IsMultipartUploaded</Field>
<Field>EncryptionStatus</Field>
</OptionalFields>
<IncrementalInventory>
<IsEnabled>true</IsEnabled>
<Schedule>
<Frequency>600</Frequency>
</Schedule>
<OptionalFields>
<Field>SequenceNumber</Field>
<Field>RecordType</Field>
<Field>RecordTimestamp</Field>
<Field>Requester</Field>
<Field>RequestId</Field>
<Field>SourceIp</Field>
<Field>Size</Field>
<Field>StorageClass</Field>
<Field>LastModifiedDate</Field>
<Field>ETag</Field>
<Field>IsMultipartUploaded</Field>
<Field>ObjectType</Field>
<Field>ObjectAcl</Field>
<Field>Crc64</Field>
<Field>EncryptionStatus</Field>
</OptionalFields>
</IncrementalInventory>
</InventoryConfiguration>Elemen permintaan
Parameter | Tipe | Wajib | Contoh | Deskripsi |
Id | String | Ya | report1 | Nama kustom inventaris. Nama tersebut harus memenuhi persyaratan berikut:
|
IsEnabled | Boolean | Ya | true | Menunjukkan apakah inventaris diaktifkan. Nilai yang valid:
|
Filter | Kontainer | Tidak | N/A | Kontainer untuk filter, yang menentukan kriteria objek yang akan dimasukkan ke dalam inventaris. |
Prefix | String | Tidak | Pics/ | Awalan untuk memfilter objek. Node induk: Filter |
LastModifyBeginTimeStamp | String | Tidak | 1637883649 | Awal rentang waktu modifikasi terakhir untuk objek. Nilainya adalah Stempel waktu UNIX dalam satuan detik. Rentang nilai: [1262275200, 253402271999] |
LastModifyEndTimeStamp | String | Tidak | 1638347592 | Akhir rentang waktu modifikasi terakhir untuk objek. Nilainya adalah Stempel waktu UNIX dalam satuan detik. Rentang nilai: [1262275200, 253402271999] |
LowerSizeBound | String | Tidak | 1024 | Ukuran minimum (dalam byte) objek yang akan dimasukkan ke dalam inventaris. Nilai harus lebih besar dari atau sama dengan 0 B dan kurang dari atau sama dengan 48,8 TB. |
UpperSizeBound | String | Tidak | 1048576 | Ukuran maksimum (dalam byte) objek yang akan dimasukkan ke dalam inventaris. Nilai harus lebih besar dari 0 B dan kurang dari atau sama dengan 48,8 TB. |
StorageClass | String | Tidak | Standard,IA | Kelas penyimpanan objek yang akan dimasukkan ke dalam inventaris. Anda dapat menentukan beberapa kelas penyimpanan. Nilai yang valid:
|
Destination | Kontainer | Ya | N/A | Kontainer untuk informasi tentang tujuan tempat laporan inventaris disimpan. |
OSSBucketDestination | Kontainer | Ya | N/A | Kontainer untuk informasi tentang bucket tempat laporan inventaris disimpan. Node induk: Destination |
Format | String | Ya | CSV | Format laporan inventaris. Laporan tersebut merupakan file CSV yang dikompresi GZIP. Nilai yang valid: CSV Node induk: OSSBucketDestination |
AccountId | String | Ya | 100000000000000 | ID Akun Alibaba Cloud yang memiliki bucket tujuan. Node induk: OSSBucketDestination |
RoleArn | String | Ya | acs:ram::100000000000000:role/AliyunOSSRole | Nama Sumber Daya Alibaba Cloud (ARN) dari Peran RAM dengan izin untuk membaca semua objek dari bucket sumber dan menulis objek ke bucket tujuan. Formatnya adalah Node induk: OSSBucketDestination |
Bucket | String | Ya | acs:oss:::bucket_0001 | Bucket tujuan untuk laporan inventaris. Node induk: OSSBucketDestination |
Prefix | String | Tidak | prefix1/ | Awalan untuk path tempat file laporan inventaris disimpan. Node induk: OSSBucketDestination |
Encryption | Kontainer | Tidak | N/A | Kontainer untuk konfigurasi enkripsi sisi server laporan inventaris. Nilai yang valid:
Node induk: OSSBucketDestination Untuk informasi selengkapnya tentang enkripsi sisi server, lihat Server-side encryption. |
SSE-OSS | Kontainer | Tidak | N/A | Kontainer untuk konfigurasi enkripsi SSE-OSS. Node induk: Encryption |
SSE-KMS | Kontainer | Tidak | N/A | Kontainer untuk konfigurasi enkripsi SSE-KMS. Node induk: Encryption |
KeyId | String | Tidak | keyId | ID CMK yang dikelola oleh KMS. Node induk: SSE-KMS |
Schedule | Kontainer | Ya | N/A | Kontainer untuk jadwal pembuatan laporan inventaris. |
Frequency | String | Ya | Daily | Menentukan frekuensi pembuatan laporan inventaris. Nilai yang valid:
Penting Jadwal Monthly tidak didukung di wilayah berikut: China (Zhangjiakou), China (Zhongwei), AS (Virginia), AS (Silicon Valley), Meksiko, Prancis (Paris), Node induk: Schedule |
DayOfMonth | Bilangan bulat positif | Tidak | 1 | Jika Frequency diatur ke Monthly, tentukan hari dalam sebulan untuk membuat inventaris. Nilainya harus bilangan bulat positif dari 1 hingga 31.
Catatan Tanggal ini menentukan kapan tugas inventaris dimulai, bukan kapan laporan dikirimkan. Karena pembuatan inventaris adalah tugas asinkron yang durasinya bergantung pada jumlah objek, laporan dikirimkan setelah tanggal ini. Node induk: Schedule |
AutoDelete | Boolean | Tidak | true | Menentukan apakah konfigurasi inventaris dihapus setelah inventaris satu kali dibuat. Elemen ini hanya berlaku jika Frequency diatur ke Once. Nilai yang valid: true, false Node induk: Schedule |
IncludedObjectVersions | String | Ya | All | Menentukan apakah versi objek dimasukkan ke dalam inventaris. Nilai yang valid:
|
OptionalFields | Kontainer | Tidak | N/A | Kontainer untuk bidang opsional yang akan dimasukkan ke dalam laporan inventaris. |
Field | String | Tidak | Size | Bidang opsional yang akan dimasukkan ke dalam laporan inventaris.
|
IncrementalInventory | Kontainer | Tidak | N/A | Kontainer untuk konfigurasi inventaris inkremental. |
IsEnabled | Boolean | Ya | true | Menentukan apakah inventaris inkremental diaktifkan. Nilai yang valid:
Jika elemen ini diatur ke true, inventaris inkremental diaktifkan dan berlaku meskipun InventoryConfiguration/IsEnabled diatur ke false. Node induk: IncrementalInventory |
Schedule | Kontainer | Ya | N/A | Kontainer untuk jadwal pembuatan inventaris inkremental. Node induk: IncrementalInventory |
Frequency | Bilangan bulat positif | Ya | 600 | Frekuensi pembuatan inventaris inkremental, dalam satuan detik. Sistem menggunakan frekuensi tetap 600 detik. Dalam setiap periode, awalan direktori dibuat secara otomatis, bersama dengan file manifest yang sesuai dan beberapa file CSV yang dihasilkan selama periode tersebut. Frekuensi kustom tidak didukung. Node induk: Schedule |
OptionalFields | Kontainer | Tidak | N/A | Kontainer untuk properti yang akan dimasukkan ke dalam file inventaris inkremental. Node induk: IncrementalInventory |
Field | String | Tidak | Size | Bidang yang akan dimasukkan ke dalam inventaris inkremental. Node induk: OptionalFields
|
Header respons
Antarmuka ini hanya mengembalikan header respons umum, seperti Content-Length dan Date. Untuk detailnya, lihat Common response headers.
Contoh
Konfigurasi inventaris
Permintaan contoh
PUT /?inventory&inventoryId=report1 HTTP/1.1 Host: oss-example.oss-cn-hangzhou.aliyuncs.com Date: Mon, 31 Oct 2016 12:00:00 GMT Authorization: authorization string Content-Length: length <?xml version="1.0" encoding="UTF-8"?> <InventoryConfiguration> <Id>report1</Id> <IsEnabled>true</IsEnabled> <Filter> <Prefix>Pics/</Prefix> <LastModifyBeginTimeStamp>1637883649</LastModifyBeginTimeStamp> <LastModifyEndTimeStamp>1638347592</LastModifyEndTimeStamp> <LowerSizeBound>1024</LowerSizeBound> <UpperSizeBound>1048576</UpperSizeBound> <StorageClass>Standard,IA</StorageClass> </Filter> <Destination> <OSSBucketDestination> <Format>CSV</Format> <AccountId>100000000000000</AccountId> <RoleArn>acs:ram::100000000000000:role/AliyunOSSRole</RoleArn> <Bucket>acs:oss:::destbucket</Bucket> <Prefix>prefix1/</Prefix> <Encryption> <SSE-KMS> <KeyId>keyId</KeyId> </SSE-KMS> </Encryption> </OSSBucketDestination> </Destination> <Schedule> <Frequency>Daily</Frequency> </Schedule> <IncludedObjectVersions>All</IncludedObjectVersions> <OptionalFields> <Field>Size</Field> <Field>LastModifiedDate</Field> <Field>TransistionTime</Field> <Field>ETag</Field> <Field>StorageClass</Field> <Field>IsMultipartUploaded</Field> <Field>EncryptionStatus</Field> </OptionalFields> </InventoryConfiguration>Respons contoh
HTTP/1.1 200 OK x-oss-request-id: 56594298207FB3044385**** Date: Mon, 31 Oct 2016 12:00:00 GMT Content-Length: 0 Server: AliyunOSS
Konfigurasi inventaris bulanan
Permintaan berikut mengonfigurasi inventaris untuk membuat laporan pada hari ke-3 setiap bulan.
Permintaan contoh
PUT /?inventory&inventoryId=monthly-report HTTP/1.1 Host: oss-example.oss-cn-hangzhou.aliyuncs.com Date: Mon, 31 Oct 2016 12:00:00 GMT Authorization: authorization string Content-Length: length <?xml version="1.0" encoding="UTF-8"?> <InventoryConfiguration> <Id>monthly-report</Id> <IsEnabled>true</IsEnabled> <Filter> <Prefix>logs/</Prefix> </Filter> <Destination> <OSSBucketDestination> <Format>CSV</Format> <AccountId>100000000000000</AccountId> <RoleArn>acs:ram::100000000000000:role/AliyunOSSRole</RoleArn> <Bucket>acs:oss:::destbucket</Bucket> <Prefix>monthly-inventory/</Prefix> </OSSBucketDestination> </Destination> <Schedule> <Frequency>Monthly</Frequency> <DayOfMonth>3</DayOfMonth> </Schedule> <IncludedObjectVersions>All</IncludedObjectVersions> <OptionalFields> <Field>Size</Field> <Field>LastModifiedDate</Field> <Field>ETag</Field> <Field>StorageClass</Field> <Field>IsMultipartUploaded</Field> <Field>EncryptionStatus</Field> </OptionalFields> </InventoryConfiguration>Respons contoh
HTTP/1.1 200 OK x-oss-request-id: 56594298207FB3044385**** Date: Mon, 31 Oct 2016 12:00:00 GMT Content-Length: 0 Server: AliyunOSS
Konfigurasi inventaris satu kali
Permintaan contoh
PUT /?inventory&inventoryId=once-report HTTP/1.1 Host: oss-example.oss-cn-hangzhou.aliyuncs.com Date: Mon, 31 Oct 2016 12:00:00 GMT Authorization: authorization string Content-Length: length <?xml version="1.0" encoding="UTF-8"?> <InventoryConfiguration> <Id>once-report</Id> <IsEnabled>true</IsEnabled> <Filter> <Prefix>log/</Prefix> </Filter> <Destination> <OSSBucketDestination> <Format>CSV</Format> <AccountId>100000000000000</AccountId> <RoleArn>acs:ram::100000000000000:role/AliyunOSSRole</RoleArn> <Bucket>acs:oss:::destbucket</Bucket> <Prefix>once-inventory/</Prefix> </OSSBucketDestination> </Destination> <Schedule> <Frequency>Once</Frequency> <AutoDelete>true</AutoDelete> </Schedule> <IncludedObjectVersions>All</IncludedObjectVersions> <OptionalFields> <Field>Size</Field> <Field>LastModifiedDate</Field> <Field>StorageClass</Field> </OptionalFields> </InventoryConfiguration>Respons contoh
HTTP/1.1 200 OK x-oss-request-id: 56594298207FB3044385**** Date: Mon, 31 Oct 2016 12:00:00 GMT Content-Length: 0 Server: AliyunOSS
Konfigurasi inventaris inkremental
Permintaan contoh
PUT /?inventory&inventoryId=report1 HTTP/1.1 Host: oss-example.oss-cn-hangzhou.aliyuncs.com Date: Mon, 31 Oct 2016 12:00:00 GMT Authorization: authorization string Content-Length: length <?xml version="1.0" encoding="UTF-8"?> <InventoryConfiguration> <Id>Report-1</Id> <IsEnabled>true</IsEnabled> <Filter> <Prefix>test</Prefix> </Filter> <Destination> <OSSBucketDestination> <Format>CSV</Format> <AccountId>12xxxxxx29</AccountId> <RoleArn>acs:ram::12xxxxxx29:role/bucket-inventory-role</RoleArn> <Bucket>acs:oss:::test-inc-bi-bj</Bucket> <Prefix>Report-1</Prefix> </OSSBucketDestination> </Destination> <Schedule> <Frequency>Weekly</Frequency> </Schedule> <IncludedObjectVersions>All</IncludedObjectVersions> <OptionalFields> <Field>Size</Field> <Field>LastModifiedDate</Field> <Field>ETag</Field> <Field>StorageClass</Field> </OptionalFields> <IncrementalInventory> <IsEnabled>true</IsEnabled> <Schedule> <Frequency>600</Frequency> </Schedule> <OptionalFields> <Field>SequenceNumber</Field> <Field>RecordType</Field> <Field>RecordTimestamp</Field> <Field>Requester</Field> <Field>RequestId</Field> <Field>SourceIp</Field> <Field>Size</Field> <Field>StorageClass</Field> <Field>LastModifiedDate</Field> <Field>ETag</Field> <Field>IsMultipartUploaded</Field> <Field>ObjectType</Field> <Field>ObjectAcl</Field> <Field>Crc64</Field> <Field>EncryptionStatus</Field> </OptionalFields> </IncrementalInventory> </InventoryConfiguration>Respons contoh
HTTP/1.1 200 OK x-oss-request-id: 56594298207FB3044385**** Date: Mon, 31 Oct 2016 12:00:00 GMT Content-Length: 0 Server: AliyunOSS
SDK
Anda dapat memanggil operasi ini menggunakan SDK untuk bahasa-bahasa berikut:
CLI ossutil
Perintah ossutil untuk operasi PutBucketInventory adalah put-bucket-inventory.
Kode error
Kode error | Kode status HTTP | Deskripsi |
InvalidArgument | 400 | Satu atau beberapa parameter yang ditentukan tidak valid. |
InventoryExceedLimit | 400 | Jumlah aturan inventaris yang dikonfigurasi melebihi batas. |
AccessDenied | 403 |
|
InventoryAlreadyExist | 409 | Aturan inventaris sudah ada. |