全部产品
Search
文档中心

Object Storage Service:PutBucketInventory

更新时间:Feb 08, 2026

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

Penting
  • 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:

  • Nama inventaris harus unik secara global dalam bucket saat ini.

  • Nama inventaris tidak boleh melebihi 192 karakter.

IsEnabled

Boolean

Ya

true

Menunjukkan apakah fitur inventaris diaktifkan.

Nilai yang valid:

  • true: Aktifkan fitur inventaris.

  • false: Nonaktifkan fitur inventaris.

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:

  • Standard: Penyimpanan Standar

  • IA: Infrequent Access

  • Archive: Archive Storage

  • ColdArchive: Cold Archive

  • All (default): Semua kelas penyimpanan

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: acs:ram::uid:role/rolename.

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:

  • SSE-OSS: Gunakan kunci yang dikelola OSS untuk enkripsi dan dekripsi.

  • SSE-KMS: Gunakan kunci master pelanggan (CMK) default yang dikelola oleh KMS atau CMK tertentu untuk enkripsi dan dekripsi.

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:

  • Daily: Ekspor file inventaris setiap hari.

  • Weekly: Ekspor file inventaris setiap minggu.

Node induk: Schedule

IncludedObjectVersions

string

Ya

All

Menentukan apakah informasi versi objek disertakan dalam inventaris.

Nilai yang valid:

  • All: Ekspor informasi semua versi objek.

  • Current: Ekspor hanya informasi versi objek saat ini.

OptionalFields

container

Tidak

N/A

Konfigurasikan item yang disertakan dalam hasil inventaris.

Field

string

Tidak

Size

Item konfigurasi yang disertakan dalam hasil inventaris.

  • Key: Nama objek dalam bucket, di-encode URL.

  • VersionId: ID versi objek. Bidang ini hanya muncul jika aturan inventaris dikonfigurasi untuk mengekspor semua versi.

    • Jika pengendalian versi tidak diaktifkan untuk bucket tempat aturan inventaris dikonfigurasi, bidang ini kosong.

    • Jika pengendalian versi diaktifkan untuk bucket tempat aturan inventaris dikonfigurasi, bidang ini menampilkan VersionId objek.

  • IsDeleteMarker: Menunjukkan apakah versi objek merupakan penanda hapus. Bidang ini hanya muncul jika aturan inventaris dikonfigurasi untuk mengekspor semua versi.

    • Jika pengendalian versi tidak diaktifkan untuk bucket tempat aturan inventaris dikonfigurasi, bidang ini bernilai default false.

    • Jika pengendalian versi diaktifkan untuk bucket tempat aturan inventaris dikonfigurasi dan objek tersebut merupakan penanda hapus, bidang ini menampilkan true. Jika objek bukan penanda hapus, bidang ini menampilkan false.

  • Size: Ukuran objek.

  • StorageClass: Kelas penyimpanan objek.

  • TransitionTime: Waktu ketika kelas penyimpanan objek berubah menjadi Cold Archive atau Deep Cold Archive karena aturan siklus hidup.

  • LastModifiedDate: Waktu modifikasi terakhir objek.

  • ETag: Nilai ETag objek, yang mengidentifikasi konten objek. ETag dibuat saat objek dihasilkan untuk mengidentifikasi kontennya.

    • Untuk objek yang dibuat menggunakan API PutObject, nilai ETag adalah hash MD5 dari kontennya.

    • Untuk objek yang dibuat dengan metode lain, nilai ETag adalah nilai unik yang dihasilkan berdasarkan aturan perhitungan tertentu, tetapi bukan hash MD5 dari kontennya.

  • IsMultipartUploaded: Menunjukkan apakah objek diunggah menggunakan unggah multi-bagian.

  • ObjectType: Jenis objek.

  • ObjectAcl: Daftar kontrol akses (ACL) objek.

  • Crc64: CRC-64 objek.

  • EncryptionStatus: Menunjukkan apakah objek dienkripsi.

  • TaggingCount: Jumlah tag.

IncrementalInventory

container

Tidak

N/A

Container konfigurasi untuk inventaris inkremental.

IsEnabled

Boolean

Ya

true

Menentukan apakah inventaris inkremental diaktifkan. Nilai yang valid:

  • true: Aktifkan.

  • false: Nonaktifkan.

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

  • SequenceNumber: Nomor seri. Setiap catatan memiliki SequenceNumber unik. Catatan dalam bucket dan objek yang sama dapat diurutkan berdasarkan SequenceNumber, yang biasanya menjamin urutan kronologis.

  • RecordType: Jenis event: CREATE, UPDATE_METADATA, DELETE.

    • CREATE: Semua metode unggah yang terjadi di bawah awalan yang dipilih, seperti Put/Post/Append/MultipartUpload/Copy.

    • UPDATE_METADATA: Semua pembaruan metadata di bawah awalan yang dipilih dicatat di bawah jenis ini.

    • DELETE: Semua metode penghapusan file di bawah awalan yang dipilih, seperti DeleteObject/DeleteMultipleObjects, pembuatan DeleteMarker setelah pengendalian versi diaktifkan, dan penghapusan oleh lifecycle. Penghapusan mencakup DeleteMarker dan penghapusan permanen. Untuk catatan penghapusan permanen, hanya kolom inti Bucket, Key, SequenceNumber, RecordType, RecordTimestamp, dan VersionId yang dipertahankan. Semua kolom lain bernilai null.

  • RecordTimestamp: Stempel waktu (contoh: "2024-08-25 18:08:01.024"), dalam Greenwich Mean Time (GMT) dengan presisi milidetik.

  • Requester: ID Alibaba Cloud atau Principal ID pemohon.

  • RequestId: ID unik dari permintaan.

  • SourceIp: Alamat IP sumber pemohon.

  • Key: Nama objek dalam bucket, di-encode URL.

  • VersionId: ID versi objek. Bidang ini hanya muncul jika aturan inventaris dikonfigurasi untuk mengekspor semua versi.

    • Jika pengendalian versi tidak diaktifkan untuk bucket tempat aturan inventaris dikonfigurasi, bidang ini kosong.

    • Jika pengendalian versi diaktifkan untuk bucket tempat aturan inventaris dikonfigurasi, bidang ini menampilkan VersionId objek.

  • IsDeleteMarker: Menunjukkan apakah versi objek merupakan penanda hapus. Bidang ini hanya muncul jika aturan inventaris dikonfigurasi untuk mengekspor semua versi.

    • Jika pengendalian versi tidak diaktifkan untuk bucket tempat aturan inventaris dikonfigurasi, bidang ini bernilai default false.

    • Jika pengendalian versi diaktifkan untuk bucket tempat aturan inventaris dikonfigurasi dan objek tersebut merupakan penanda hapus, bidang ini menampilkan true. Jika objek bukan penanda hapus, bidang ini menampilkan false.

  • Size: Ukuran objek.

  • StorageClass: Kelas penyimpanan objek.

  • LastModifiedDate: Waktu modifikasi terakhir objek.

  • ETag: Nilai ETag objek, yang mengidentifikasi konten objek. ETag dibuat saat objek dihasilkan untuk mengidentifikasi kontennya.

    • Untuk objek yang dibuat menggunakan API PutObject, nilai ETag adalah hash MD5 dari kontennya.

    • Untuk objek yang dibuat dengan metode lain, nilai ETag adalah nilai unik yang dihasilkan berdasarkan aturan perhitungan tertentu, tetapi bukan hash MD5 dari kontennya.

  • IsMultipartUploaded: Menunjukkan apakah objek diunggah menggunakan unggah multi-bagian.

  • ObjectType: Jenis objek.

  • ObjectAcl: Daftar kontrol akses (ACL) objek.

  • Crc64: CRC-64 objek.

  • EncryptionStatus: Menunjukkan apakah objek dienkripsi.

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

  • Tidak ada informasi autentikasi pengguna yang disediakan saat menginisiasi permintaan PutBucketInventory.

  • Pengguna tidak memiliki izin operasi.

InventoryAlreadyExist

409

Aturan inventaris yang diminta sudah ada.