All Products
Search
Document Center

Object Storage Service:Proses perubahan file OSS secara real-time menggunakan notifikasi event

Last Updated:Nov 05, 2025

Gunakan notifikasi event untuk memproses perubahan file di OSS secara real-time guna sinkronisasi data, pemantauan perubahan, pemicu logika bisnis, atau pencatatan log. Anda dapat menetapkan aturan notifikasi event untuk memantau file tertentu dan menerima notifikasi terkait.

Prasyarat

Pastikan bahwa Simple Message Queue (SMQ) (sebelumnya MNS) telah diaktifkan. Untuk mengaktifkan SMQ, kunjungi halaman produk SMQ.

Catatan

  • Notifikasi event melibatkan panggilan antara OSS dan SMQ. Ketika operasi di OSS memicu aturan, OSS memanggil SMQ untuk mengirim pesan. Panggilan dari OSS ke SMQ ini bisa gagal. Untuk memeriksa apakah panggilan berhasil, periksa nilai `x-oss-event-status` dalam header respons. Nilai ini dikodekan Base64. Jika nilai yang didekode adalah `{"Result": "Ok"}`, panggilan ke SMQ berhasil. Jika tidak, panggilan gagal.

  • Fitur notifikasi event membebankan biaya untuk SMQ. Untuk informasi lebih lanjut tentang penagihan, lihat Ikhtisar Penagihan.

  • Untuk daftar Wilayah yang mendukung notifikasi event untuk bucket, lihat Wilayah yang Didukung.

  • Anda dapat mengonfigurasi maksimal 10 aturan notifikasi event per Wilayah. Jika bisnis Anda memerlukan lebih banyak aturan, hubungi Dukungan Teknis.

  • File TS dan M3U8 yang dihasilkan oleh pengambilan aliran RTMP tidak memicu aturan notifikasi event. Untuk informasi lebih lanjut tentang pengambilan aliran RTMP, lihat Operasi LiveChannel.

Cara kerjanya

Setelah Anda membuat aturan notifikasi event, ketika permintaan ke OSS memicu aturan tersebut, SMQ mengirimkan notifikasi. Notifikasi, yang berisi informasi tentang operasi, dikirim ke server HTTP atau antrian SMQ yang telah Anda konfigurasikan. Diagram berikut menunjukkan proses ini:

Jenis-jenis event

Penting

Jenis event `ObjectCreatedGroup`, `ObjectDownloadedGroup`, dan `ObjectRemovedGroup` didukung di wilayah berikut: Tiongkok (Hong Kong), AS (Silicon Valley), AS (Virginia), Jerman (Frankfurt), Singapura, dan Inggris (London).

Jenis event yang dikonfigurasikan

Deskripsi

Nama event yang dikembalikan dalam notifikasi

PutObject

Membuat atau menimpa file menggunakan unggah sederhana.

ObjectCreated:PutObject

PostObject

Membuat atau menimpa file menggunakan unggah formulir.

ObjectCreated:PostObject

CopyObject

Membuat atau menimpa file dengan menyalin objek.

ObjectCreated:CopyObject

InitiateMultipartUpload

Menginisialisasi tugas unggah multi-bagian.

ObjectCreated:InitiateMultipartUpload

UploadPart

Membuat atau menimpa file dengan mengunggah bagian.

ObjectCreated:UploadPart

UploadPartCopy

Membuat atau menimpa file dengan menyalin bagian.

ObjectCreated:UploadPartCopy

CompleteMultipartUpload

Menyelesaikan unggah multi-bagian.

ObjectCreated:CompleteMultipartUpload

AbortMultipartUpload

Membatalkan tugas unggah multi-bagian dan menghapus bagian-bagiannya.

ObjectRemoved:AbortMultipartUpload

AppendObject

Membuat atau menambahkan file menggunakan unggah tambahan.

ObjectCreated:AppendObject

GetObject

Mengambil file menggunakan unduhan sederhana.

ObjectDownloaded:GetObject

DeleteObject

Menghapus satu objek.

ObjectRemoved:DeleteObject

DeleteObjects

Menghapus beberapa objek.

ObjectRemoved:DeleteObjects

ObjectReplication:ObjectCreated

Operasi tulis selama replikasi data.

ObjectReplication:ObjectCreated

ObjectReplication:ObjectRemoved

Operasi hapus selama replikasi data.

ObjectReplication:ObjectRemoved

ObjectReplication:ObjectModified

Operasi modifikasi selama replikasi data.

ObjectReplication:ObjectModified

ObjectModified:ChangeStorageClass

Operasi transisi kelas penyimpanan yang dipicu oleh aturan siklus hidup, seperti transisi dari Standar ke Akses Jarang, Arsip, Penyimpanan Arsip Dingin, atau Deep Cold Archive.

ObjectModified:ChangeStorageClass

ObjectCreatedGroup

Semua operasi yang membuat atau menimpa file.

Nama event yang dikembalikan dalam notifikasi dapat berupa event apa pun yang dimulai dengan `ObjectCreated:`, tergantung pada metode unggah. Misalnya, jika Anda mengunggah file menggunakan unggah sederhana dengan SDK, nama event adalah `ObjectCreated:PutObject`. Jika Anda mengunggah file di Konsol OSS, nama event adalah `ObjectCreated:PostObject`.

ObjectDownloadedGroup

Semua operasi yang mengambil file.

Nama event yang dikembalikan dalam notifikasi dapat berupa event apa pun yang dimulai dengan `ObjectDownloaded:`, tergantung pada metode unduhan. Misalnya, jika Anda mengambil file menggunakan unduhan sederhana, nama event adalah `ObjectDownloaded:GetObject`.

ObjectRemovedGroup

Semua operasi yang menghapus file.

Nama event yang dikembalikan dalam notifikasi dapat berupa event apa pun yang dimulai dengan `ObjectRemoved:`, tergantung pada metode penghapusan. Misalnya, jika Anda menghapus satu objek, nama event adalah `ObjectRemoved:DeleteObject`. Jika Anda menghapus beberapa objek dalam batch, nama event adalah `ObjectRemoved:DeleteObjects`.

FinishRestore

Menyelesaikan operasi pemulihan. Jenis event ini hanya didukung untuk objek Penyimpanan Arsip Dingin dan Deep Cold Archive.

ObjectRestore:FinishRestore

Notifikasi pesan

Konten pesan notifikasi event OSS dikodekan Base64. Setelah didekode, kontennya dalam format JSON. Struktur konten pesan adalah sebagai berikut:

{"events": [
      {
        "eventName": "",  // Jenis notifikasi event.
        "eventSource": "", // Sumber notifikasi event. Nilainya tetap "acs:oss".
        "eventTime": "", // Waktu event dalam format ISO 8601.
        "eventVersion": "", // Versi notifikasi event. Versi saat ini adalah "1.0".
        "oss": {
            "bucket": {
                "arn": "", // Pengenal unik bucket. Formatnya adalah "acs:oss:region:uid:bucketname".
                "name": "", // Nama bucket tujuan.
                "ownerIdentity": "" // Pemilik bucket.
            }, 
            "object": {
                "deltaSize": "", // Perubahan ukuran objek. Misalnya, jika file ditambahkan, nilai ini adalah ukuran file. Jika file ditimpa, nilai ini adalah selisih antara ukuran file baru dan lama, sehingga bisa negatif.
                "eTag": "", // ETag objek.
                "key": "", // Nama objek.
                "position": "", // Parameter ini hanya berlaku untuk event ObjectCreated:AppendObject. Ini menunjukkan posisi di mana operasi tambahan dimulai untuk permintaan ini. Posisi untuk permintaan AppendObject pertama dimulai dari byte 0.
                "readFrom": "", // Parameter ini hanya berlaku untuk event ObjectDownloaded:GetObject. Ini menunjukkan posisi di mana pembacaan file dimulai. Untuk permintaan non-range, nilai ini adalah 0. Untuk permintaan range, nilai ini adalah byte awal permintaan.
                "readTo": "", // Parameter ini hanya berlaku untuk event ObjectDownloaded:GetObject. Ini menunjukkan posisi di mana pembacaan file berakhir. Untuk permintaan non-range, nilai ini adalah ukuran file. Untuk permintaan range, nilai ini adalah byte akhir permintaan range ditambah 1.
                "size": "" // Ukuran objek.
                }, 
        "ossSchemaVersion": "", // Versi bidang skema ini. Versi saat ini adalah "1.0".
        "ruleId": "GetObject", // ID aturan yang cocok dengan event ini.
        "region": "", // Wilayah tempat bucket berada.
        "requestParameters": {
            "sourceIPAddress": "" // Alamat IP sumber permintaan.
            }, 
        "responseElements": {
            "requestId": "" // ID permintaan.
            }, 
        "userIdentity": {
            "principalId": "" // UID peminta.
            }, 
        "xVars": {  // Parameter kustom dalam fitur OSS Callback.
            "x:callback-var1":"value1",
            "x:vallback-var2":"value2"
            }
        }        
     }
  ]
}

Contoh notifikasi pesan:

{"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:vallback-var2":"value2"
            }
        }        
     }
  ]
}

Prosedur

  1. Masuk ke Konsol OSS.

  2. Di panel navigasi di sebelah kiri, klik Buckets. Di halaman Buckets, temukan dan klik bucket yang diinginkan.

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

  4. Di halaman Event Notification, klik Create Rule.

  5. Di panel Create Rule, konfigurasikan parameter berikut:

    Parameter

    Deskripsi

    Rule Name

    Nama aturan notifikasi event.

    Nama aturan harus unik di wilayah yang sama untuk akun yang sama. Nama harus dimulai dengan huruf dan dapat berisi huruf besar, huruf kecil, angka, dan tanda hubung (-). Panjangnya tidak boleh melebihi 85 karakter.

    Event Type

    Jenis event untuk objek tujuan. Misalnya, jika Anda ingin menerima notifikasi event ketika objek tujuan dibuat atau ditimpa oleh operasi salin, atur jenis event menjadi `CopyObject`.

    Anda dapat mengonfigurasi satu aturan notifikasi event untuk objek tujuan dan menentukan beberapa jenis event dalam aturan tersebut. Anda juga dapat mengonfigurasi beberapa aturan notifikasi event untuk objek tujuan. Perhatikan hal berikut saat mengonfigurasi beberapa aturan:

    • Jika beberapa aturan berlaku untuk objek tujuan yang sama, jenis event tidak boleh sama. Misalnya, jika Aturan A dikonfigurasi dengan event `CopyObject` untuk prefix images, Aturan B tidak dapat mencakup event `CopyObject` jika berlaku untuk objek apa pun dengan prefix images.

    • Jika beberapa aturan berlaku untuk objek tujuan yang berbeda, jenis event dapat sama atau berbeda. Misalnya, jika Aturan A dikonfigurasi dengan event `PutObject` untuk objek dengan prefix images dan suffix .png, dan Aturan B berlaku untuk objek dengan prefix log dan suffix .jpg, jenis event untuk Aturan B dapat berupa `PutObject` atau `DeleteObject`.

    Penting

    Saat Anda menghapus objek dari bucket yang memiliki pengendalian versi tanpa menentukan ID versi, notifikasi event `DeleteObject` atau `DeleteObjects` tidak akan dipicu. Hal ini karena perilaku penghapusan default tidak menghapus versi objek apa pun. Sebagai gantinya, itu mengubah versi saat ini dari objek menjadi versi sebelumnya dan menambahkan penanda hapus.

    Untuk informasi lebih lanjut tentang operasi objek yang sesuai dengan jenis event, lihat Jenis-jenis event.

    Object Matching

    Objek tujuan untuk memicu notifikasi event.

    • Cocokkan objek tujuan berdasarkan Full Name

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

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

    • Cocokkan objek tujuan berdasarkan Prefix/Suffix

      • Untuk mencocokkan semua objek di bucket, kosongkan awalan dan akhiran.

      • Untuk mencocokkan semua objek di direktori examplefolder bucket, atur awalan menjadi examplefolder/ dan kosongkan akhiran.

      • Untuk mencocokkan semua objek dengan ekstensi .jpg di bucket, kosongkan awalan dan atur akhiran menjadi .jpg.

      • Untuk mencocokkan semua objek dengan ekstensi .mp3 di direktori examplefolder bucket, atur awalan menjadi examplefolder/ dan akhiran menjadi .mp3.

    Klik tombol Add Condition untuk membuat hingga lima aturan Resource Description object matching.

    Subscription Endpoint

    Titik akhir yang menerima event. Jenis langganan seperti HTTP dan Antrian didukung.

  6. Klik OK.

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

FAQ

Mengapa notifikasi event tidak dipicu ketika saya menghapus file?

Referensi