Anda dapat memanggil API PutBucketInventory untuk mengonfigurasi aturan inventaris untuk sebuah bucket.
Catatan
Inventaris menyediakan informasi tentang objek dalam sebuah bucket, seperti jumlahnya, ukurannya, kelas penyimpanan, dan status enkripsinya. Perhatikan hal-hal berikut saat mengonfigurasi aturan inventaris:
Sebelum mengonfigurasi inventaris untuk sebuah bucket, Anda harus membuat peran RAM. Peran RAM tersebut harus memiliki izin untuk membaca semua objek dari bucket sumber dan menulis objek ke bucket tujuan. Jika Anda menggunakan fitur bucket inventory untuk pertama kalinya, kami menyarankan agar Anda mengonfigurasi inventaris melalui Konsol OSS. Setelah inventaris dikonfigurasi, Anda dapat memperoleh peran RAM yang memiliki izin untuk melakukan semua operasi pada sumber daya OSS. Untuk informasi lebih lanjut mengenai izin yang diperlukan oleh peran RAM saat mengonfigurasi aturan inventaris, lihat Bucket inventory.
Sebuah bucket mendukung maksimal 1.000 aturan inventaris.
Bucket sumber untuk inventaris dan bucket tujuan untuk file inventaris yang diekspor harus berada di wilayah yang sama.
Untuk menggunakan fitur incremental inventory, hubungi technical support untuk mengajukan permohonan. Fitur ini saat ini hanya tersedia di wilayah Meksiko (Mexico City).
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 Kebijakan Bucket.
API | Action | Deskripsi |
PutBucketInventory | oss:PutBucketInventory | Mengonfigurasi inventaris untuk sebuah bucket. |
Sintaksis permintaan
Parameter `inventoryId` dalam header permintaan wajib diisi. Nilainya harus sesuai dengan parameter permintaan `Id`.
Hanya wilayah China (Qingdao), China (Hohhot), dan Jerman (Frankfurt) yang mendukung opsi LastModifyBeginTimeStamp, LastModifyEndTimeStamp, LowerSizeBound, UpperSizeBound, dan StorageClass.
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>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>
<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
Nama | Tipe | Wajib | Contoh | Deskripsi |
Id | string | Ya | report1 | Nama inventaris kustom. Nama ini harus memenuhi persyaratan berikut:
|
IsEnabled | Boolean | Ya | true | Menunjukkan apakah fitur inventaris diaktifkan. Nilai yang valid:
|
Filter | container | Tidak | N/A | Awalan untuk memfilter objek dalam inventaris. Setelah awalan ditentukan, inventaris akan memfilter objek yang sesuai dengan awalan tersebut. |
Prefix | string | Tidak | Pics/ | Awalan untuk aturan filter. Node induk: Filter |
LastModifyBeginTimeStamp | string | Tidak | 1637883649 | Stempel waktu UNIX awal dari waktu modifikasi terakhir file yang difilter, dalam detik. Rentang valid: [1262275200, 253402271999] |
LastModifyEndTimeStamp | string | Tidak | 1638347592 | Stempel waktu UNIX akhir dari waktu modifikasi terakhir file yang difilter, dalam detik. Rentang valid: [1262275200, 253402271999] |
LowerSizeBound | string | Tidak | 1024 | Ukuran minimum file yang difilter, dalam byte. Rentang valid: 0 B hingga 48,8 TB. |
UpperSizeBound | string | Tidak | 1048576 | Ukuran maksimum file yang difilter, dalam byte. Rentang valid: lebih besar dari 0 B hingga 48,8 TB. |
StorageClass | string | Tidak | Standard,IA | Kelas penyimpanan file yang difilter. Anda dapat menentukan beberapa kelas penyimpanan. Nilai yang valid:
|
Destination | container | Ya | N/A | Menyimpan hasil daftar periksa. |
OSSBucketDestination | container | Ya | N/A | Informasi tentang bucket tempat hasil inventaris yang diekspor disimpan. Node induk: Destination |
Format | string | Ya | CSV | Format file dari file inventaris. File inventaris yang diekspor adalah file CSV yang dikompresi dengan GZIP. Nilai valid: CSV Node induk: OSSBucketDestination |
AccountId | string | Ya | 100000000000000 | AccountId yang diberikan oleh pemilik bucket. Node induk: OSSBucketDestination |
RoleArn | string | Ya | acs:ram::100000000000000:role/AliyunOSSRole | Nama peran yang memiliki izin untuk membaca semua file dari bucket sumber dan menulis file ke bucket tujuan. Format: Node induk: OSSBucketDestination |
Bucket | string | Ya | acs:oss:::bucket_0001 | Bucket tempat file inventaris yang diekspor disimpan. Node induk: OSSBucketDestination |
Prefix | string | Tidak | prefix1/ | Awalan jalur penyimpanan untuk file inventaris. Node induk: OSSBucketDestination |
Encryption | container | Tidak | N/A | Metode enkripsi untuk file inventaris. Nilai yang valid:
Node induk: OSSBucketDestination Untuk informasi lebih lanjut, lihat Server-side encryption. |
SSE-OSS | container | Tidak | N/A | Container untuk metode enkripsi SSE-OSS. Node induk: Encryption |
SSE-KMS | container | Tidak | N/A | Container untuk kunci enkripsi SSE-KMS. Node induk: Encryption |
KeyId | string | Tidak | keyId | ID kunci KMS. Node induk: SSE-KMS |
Schedule | container | Ya | N/A | Container untuk informasi frekuensi ekspor inventaris. |
Frequency | string | Ya | Daily | Frekuensi ekspor file inventaris. Nilai yang valid:
Node induk: Schedule |
IncludedObjectVersions | string | Ya | All | Menentukan apakah informasi versi objek disertakan dalam inventaris. Nilai yang valid:
|
OptionalFields | container | Tidak | N/A | Konfigurasikan item yang disertakan dalam hasil inventaris. |
Field | string | Tidak | Size | Item konfigurasi yang disertakan dalam hasil inventaris.
|
IncrementalInventory | container | Tidak | N/A | Container konfigurasi untuk inventaris inkremental. |
IsEnabled | Boolean | Ya | true | Menentukan apakah inventaris inkremental diaktifkan. Nilai yang valid:
Jika diatur ke `true`, inventaris inkremental diaktifkan, bahkan jika `InventoryConfiguration/IsEnabled` bernilai `false`. Node induk: IncrementalInventory |
Schedule | container | Ya | N/A | Container untuk informasi frekuensi ekspor inventaris inkremental. Node induk: IncrementalInventory |
Frequency | Bilangan bulat positif | Ya | 600 | Frekuensi ekspor untuk inventaris inkremental, dalam detik. Sistem saat ini menggunakan periode tetap 600 detik. Untuk setiap periode, sistem secara otomatis membuat awalan direktori dan menghasilkan file manifest serta beberapa file CSV untuk periode tersebut. Pengaturan frekuensi kustom tidak didukung. Node induk: Schedule |
OptionalFields | container | Tidak | N/A | Container konfigurasi untuk properti file inventaris inkremental. Node induk: IncrementalInventory |
Field | string | Tidak | Size | Item konfigurasi yang disertakan dalam inventaris inkremental. Node induk: OptionalFields
|
Elemen respons
Operasi ini hanya mengembalikan header respons umum, seperti Content-Length dan Date. Untuk informasi lebih lanjut, lihat Header respons umum.
Contoh
Konfigurasikan aturan 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
Konfigurasikan aturan 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
API ini tersedia di SDK berikut:
ossutil
Untuk informasi lebih lanjut mengenai perintah ossutil untuk operasi ini, lihat put-bucket-inventory.
Kode error
Kode error | Kode status HTTP | Deskripsi |
InvalidArgument | 400 | Parameter yang tidak valid dikirimkan. |
InventoryExceedLimit | 400 | Jumlah aturan konfigurasi inventaris melebihi batas. |
AccessDenied | 403 |
|
InventoryAlreadyExist | 409 | Aturan inventaris yang diminta sudah ada. |