All Products
Search
Document Center

Object Storage Service:Proses perubahan objek OSS secara real-time dengan notifikasi event

Last Updated:May 08, 2026

Saat Anda perlu memproses, menyinkronkan, memantau, memicu alur kerja bisnis, atau mencatat perubahan pada objek di OSS secara real-time, Anda dapat mengonfigurasi aturan notifikasi event untuk menentukan objek yang akan dipantau dan menerima notifikasi tepat waktu mengenai event terkait.

Prasyarat

Anda telah mengaktifkan Simple Message Queue (SMQ). Anda dapat mengaktifkan SMQ di halaman produk SMQ.

Catatan penggunaan

  • Notifikasi event melibatkan panggilan antara OSS dan SMQ. Ketika suatu operasi di OSS memicu aturan notifikasi event, OSS menginstruksikan SMQ untuk mengirim pesan notifikasi. Panggilan dari OSS ke SMQ ini mungkin gagal. Anda dapat memeriksa nilai header x-oss-event-status dalam respons untuk menentukan apakah notifikasi berhasil dipicu. Nilainya dikodekan dalam Base64. Jika nilai setelah didekode adalah {"Result": "Ok"}, panggilan ke SMQ berhasil. Jika nilai yang didekode bukan {"Result": "Ok"}, panggilan ke SMQ gagal.

  • Penggunaan fitur notifikasi event akan dikenakan biaya SMQ. Untuk informasi selengkapnya, lihat Penagihan.

  • Untuk daftar wilayah tempat Anda dapat mengonfigurasi notifikasi event untuk bucket, lihat Wilayah yang didukung.

  • Anda dapat mengonfigurasi maksimal 10 aturan notifikasi event di setiap wilayah. Jika bisnis Anda memerlukan lebih banyak aturan, hubungi dukungan teknis.

  • Objek TS dan M3U8 yang dihasilkan dari aliran Real-Time Messaging Protocol (RTMP) tidak memicu aturan notifikasi event. Untuk informasi selengkapnya tentang streaming RTMP, lihat Operasi terkait LiveChannel.

Cara kerja

Setelah Anda membuat aturan notifikasi event, jika suatu operasi pada bucket OSS Anda memicu aturan tersebut, SMQ akan mengirim pesan mengenai event tersebut ke server HTTP atau antrian SMQ yang Anda tentukan. Gambar berikut menunjukkan proses ini.

Jenis event

Group

Type

Description

ObjectCreated (Create object)

ObjectCreated:PutObject

Sebuah objek diunggah menggunakan operasi PutObject. Untuk informasi selengkapnya, lihat PutObject.

ObjectCreated:PostObject

Sebuah objek diunggah menggunakan operasi PostObject. Untuk informasi selengkapnya, lihat PostObject.

ObjectCreated:CopyObject

Sebuah objek disalin. Untuk informasi selengkapnya, lihat CopyObject.

ObjectCreated:AppendObject

Sebuah objek diunggah dengan menambahkan data ke dalamnya. Untuk informasi selengkapnya, lihat AppendObject.

ObjectCreated:InitiateMultipartUpload

Tugas unggah multi-bagian dimulai. Untuk informasi selengkapnya, lihat InitiateMultipartUpload.

ObjectCreated:UploadPart

Sebuah bagian diunggah untuk tugas unggah multi-bagian. Untuk informasi selengkapnya, lihat UploadPart.

ObjectCreated:UploadPartCopy

Sebuah bagian disalin untuk tugas unggah multi-bagian. Untuk informasi selengkapnya, lihat UploadPartCopy.

ObjectCreated:CompleteMultipartUpload

Tugas unggah multi-bagian selesai. Untuk informasi selengkapnya, lihat CompleteMultipartUpload.

ObjectCreated:PutSymlink

Tautan simbolik dibuat untuk sebuah objek. Untuk informasi selengkapnya, lihat PutSymlink.

ObjectCreated:Mirror

Objek dibuat melalui pencerminan.

Catatan

Secara default, pencerminan OSS memicu event ObjectCreated:PutObject. Untuk memicu event ObjectCreated:Mirror sebagai gantinya, Anda harus mengajukan tiket untuk mengaktifkan fitur ini.

ObjectCreated:*

Event apa pun yang diawali dengan ObjectCreated:.

Catatan

Wildcard ini secara otomatis mencakup semua jenis event baru yang ditambahkan di bawah kategori ObjectCreated di masa mendatang, seperti ObjectCreated:test.

ObjectDownloaded (Download object)

ObjectDownloaded:GetObject

Sebuah objek diunduh.

ObjectModified (Modify object)

ObjectModified:UpdateObjectMeta

Metadata objek dimodifikasi menggunakan operasi UpdateObjectMeta.

ObjectModified:ChangeStorageClass

Kelas penyimpanan objek diubah oleh aturan siklus hidup.

ObjectModified:*

Event apa pun yang diawali dengan ObjectModified:.

Catatan

Wildcard ini secara otomatis mencakup semua jenis event baru yang ditambahkan di bawah kategori ObjectModified di masa mendatang, seperti ObjectModified:test.

ObjectRemoved (Delete object)

ObjectRemoved:DeleteObject

Sebuah objek tunggal dihapus. Untuk informasi selengkapnya, lihat DeleteObject.

ObjectRemoved:DeleteObjects

Beberapa objek dihapus. Untuk informasi selengkapnya, lihat DeleteMultipleObjects.

ObjectRemoved:AbortMultipartUpload

Tugas unggah multi-bagian dibatalkan dan bagian-bagiannya dihapus. Untuk informasi selengkapnya, lihat AbortMultipartUpload.

ObjectRemoved:*

Event apa pun yang diawali dengan ObjectRemoved:.

Catatan

Wildcard ini secara otomatis mencakup semua jenis event baru yang ditambahkan di bawah kategori ObjectRemoved di masa mendatang, seperti ObjectRemoved:test.

ObjectReplication (Replicate object)

ObjectReplication:ObjectCreated

Operasi tulis terjadi sebagai bagian dari proses replikasi data.

ObjectReplication:ObjectRemoved

Operasi hapus terjadi sebagai bagian dari proses replikasi data.

ObjectReplication:ObjectModified

Operasi timpa terjadi sebagai bagian dari proses replikasi data.

ObjectReplication:*

Event apa pun yang diawali dengan ObjectReplication:.

Catatan

Wildcard ini secara otomatis mencakup semua jenis event baru yang ditambahkan di bawah kategori ObjectReplication di masa mendatang, seperti ObjectReplication:test.

ObjectRestore (Restore object)

ObjectRestore:FinishRestore

Sebuah objek berhasil dipulihkan dari kelas penyimpanan arsip ke status yang dapat diakses. Jenis event ini hanya berlaku untuk objek dalam kelas penyimpanan Cold Archive dan Deep Cold Archive.

Pesan notifikasi

Notifikasi event OSS berisi muatan JSON yang dikodekan Base64. Setelah didekode, muatan tersebut memiliki struktur berikut:

{
    "events": [
      {
        "eventName": "",  // Jenis notifikasi event.
        "eventSource": "", // Sumber notifikasi event. Nilai ini tetap "acs:oss".
        "eventTime": "", // Waktu terjadinya event, dalam format ISO 8601.
        "eventVersion": "", // Versi notifikasi event. Versi saat ini adalah "1.0".
        "oss": {
            "bucket": {
                "arn": "", // Nama Sumber Daya Alibaba Cloud (ARN) bucket, dalam format "acs:oss:region:uid:bucketname".
                "name": "", // Nama bucket tujuan.
                "ownerIdentity": "" // Pemilik bucket.
            }, 
            "object": {
                "deltaSize": "", // Perubahan ukuran objek. Misalnya, ketika objek baru dibuat, nilai ini adalah ukuran objek. Ketika objek ditimpa, nilai ini adalah selisih ukuran antara objek baru dan lama, yang bisa bernilai negatif.
                "eTag": "", // ETag objek.
                "key": "", // Kunci objek.
                "position": "", // Posisi awal untuk operasi append. Parameter ini hanya berlaku untuk event ObjectCreated:AppendObject. Permintaan AppendObject pertama untuk suatu objek dimulai dari byte 0.
                "readFrom": "", // Posisi awal untuk operasi baca. Parameter ini hanya berlaku untuk event ObjectDownloaded:GetObject. Untuk permintaan non-range, nilai ini adalah 0. Untuk permintaan range, nilai ini adalah byte awal permintaan.
                "readTo": "", // Posisi akhir untuk operasi baca. Parameter ini hanya berlaku untuk event ObjectDownloaded:GetObject. Untuk permintaan non-range, nilai ini adalah ukuran objek. Untuk permintaan range, nilai ini adalah byte akhir permintaan range ditambah 1.
                "size": "" // Ukuran objek.
                }, 
        "ossSchemaVersion": "", // Versi skema ini. Versi saat ini adalah "1.0".
        "ruleId": "GetObject", // ID aturan notifikasi event yang sesuai.
        "region": "", // Wilayah bucket.
        "requestParameters": {
            "sourceIPAddress": "" // Alamat IP sumber permintaan.
            }, 
        "responseElements": {
            "requestId": "" // ID permintaan.
            }, 
        "userIdentity": {
            "principalId": "" // UID pengguna yang membuat permintaan.
            }, 
        "xVars": {  // Parameter kustom dalam fitur callback unggahan OSS.
            "x:callback-var1":"value1",
            "x:callback-var2":"value2"
            }
        }        
     }
  ]
}

Berikut ini contoh pesan notifikasi:

{"events": [
      {
        "eventName": "ObjectDownloaded:GetObject",
        "eventSource": "acs:oss",
        "eventTime": "2016-07-01T11:17:30.000Z",
        "eventVersion": "1.0",
        "oss": {
            "bucket": {
                "arn": "acs:oss:cn-shenzhen:114895646818****:event-notification-test-shenzhen",
                "name": "event-notification-test-shenzhen",
                "ownerIdentity": "114895646818****"},
            "object": {
                "deltaSize": 0,
                "eTag": "0CC175B9C0F1B6468E1199E269772661",
                "key": "test",
                "readFrom": 0,
                "readTo": 1,
                "size": 1
            },
        "ossSchemaVersion": "1.0",
        "ruleId": "GetObjectRule",
        "region": "cn-shenzhen",
        "requestParameters": {
            "sourceIPAddress": "198.51.100.1"
            },
        "responseElements": {
            "requestId": "5FF16B65F05BC932307A3C3C"
            },
        "userIdentity": {
            "principalId": "114895646818****"
            },
        "xVars": {
            "x:callback-var1":"value1",
            "x:callback-var2":"value2"
            }
        }        
     }
  ]
}

Prosedur

  1. Masuk ke Konsol OSS.

  2. Di panel navigasi kiri, klik Buckets. Di halaman yang muncul, klik nama bucket target.

  3. Di panel navigasi kiri, pilih Data Processing > Event Notification.

  4. Di halaman Event Notification, klik Create Rule.

  5. Di panel Create Rule, konfigurasikan parameter berikut:

    Parameter

    Description

    Rule Name

    Tentukan nama untuk aturan notifikasi event.

    Nama aturan harus unik dalam wilayah yang sama untuk Akun Alibaba Cloud yang sama. Nama harus dimulai dengan huruf, dapat berisi huruf kapital, huruf kecil, angka, dan tanda hubung (-), serta tidak lebih dari 85 karakter.

    Event Type

    Pilih satu atau beberapa jenis event untuk objek target. Misalnya, jika Anda ingin menerima notifikasi saat objek dibuat atau ditimpa melalui operasi salin, pilih CopyObject.

    Anda dapat mengonfigurasi satu aturan dengan beberapa jenis event untuk objek target, atau mengonfigurasi beberapa aturan untuk objek yang sama. Saat mengonfigurasi beberapa aturan, perhatikan hal berikut:

    • Jika beberapa aturan berlaku untuk Objek target yang sama, jenis event-nya tidak boleh sama. Misalnya, jika Aturan A dikonfigurasi dengan event CopyObject untuk awalan images, dan Aturan B berlaku untuk Objek apa pun di bawah awalan images, jenis event untuk Aturan B tidak boleh mencakup CopyObject.

    • Jika beberapa aturan berlaku untuk Objek target yang berbeda, jenis event-nya dapat sama atau berbeda. Misalnya, Aturan A dikonfigurasi untuk event PutObject untuk objek dengan awalan images dan akhiran .png. Jika Aturan B berlaku untuk objek dengan awalan log dan akhiran .jpg, jenis event-nya dapat mencakup PutObject atau DeleteObject.

    Penting

    Saat Anda menghapus objek dari bucket yang telah diaktifkan Pengendalian versi, event DeleteObject atau DeleteObjects tidak dipicu jika Anda tidak menentukan ID versi. Hal ini karena operasi hapus tanpa ID versi tidak menghapus permanen versi objek apa pun. Sebaliknya, versi saat ini menjadi versi sebelumnya dan penanda hapus ditambahkan.

    Untuk informasi selengkapnya tentang operasi objek yang sesuai dengan jenis event, lihat Jenis event.

    Object Matching

    Tentukan objek target untuk notifikasi event.

    • Cocokkan objek berdasarkan Full Name

      • Untuk mencocokkan objek bernama exampleobject.txt di Direktori root bucket, masukkan exampleobject.txt.

      • Untuk mencocokkan objek bernama myphoto.jpg di direktori destdir bucket, masukkan destdir/myphoto.jpg.

    • Cocokkan objek berdasarkan Prefix/Suffix

      • Untuk mencocokkan semua objek di bucket, biarkan Prefix dan Suffix kosong.

      • Untuk mencocokkan semua objek di direktori examplefolder, atur Prefix menjadi examplefolder/ dan biarkan Suffix kosong.

      • Untuk mencocokkan semua objek dengan ekstensi .jpg di bucket, biarkan Prefix kosong dan atur Suffix menjadi .jpg.

      • Untuk mencocokkan semua objek dengan ekstensi .mp3 di direktori examplefolder, atur Prefix menjadi examplefolder/ dan Suffix menjadi .mp3.

    Anda dapat mengklik Add Condition untuk membuat hingga lima aturan object matching.

    Subscription Endpoint

    Tentukan titik akhir yang menerima event. Jenis langganan yang didukung meliputi HTTP dan Queue.

  6. Klik OK.

    Setelah menyelesaikan langkah-langkah ini, aturan notifikasi event akan berlaku dalam waktu sekitar 10 menit.

FAQ

Mengapa notifikasi event tidak dipicu saat saya menghapus objek?

Referensi