全部產品
Search
文件中心

Object Storage Service:結合Message Service實現OSS事件通知

更新時間:Feb 28, 2024

您可以通過OSS管理主控台配置事件通知規則,自訂您關注的檔案(Object),當這些Object發生指定事件時,您可以通過Message Service指定的接收終端,及時收到Object的事件通知。

情境描述

某企業在華東1(杭州)地區建立了名為srcbucket的儲存空間(Bucket),Bucket內包含了不同日期持續產生的以log為首碼的記錄檔log/date1.txt、log/date2.txt和log/date3.txt等,以及以周為單位收集的以destdir為首碼的客戶案例圖片檔案destdir/photo1.jpg、destdir/photo2.jpg等。

srcbucket
    └── log/
       ├── date1.txt
       ├── date2.txt
       ├── date3.txt
       ├── .......
    └── destdir/       
       ├── photo1.jpg
       ├── photo2.jpg
       ├── ......

該企業子公司需要將srcbucket內以上持續產生的日誌以及客戶案例圖片檔案、以及這些檔案在任意時間內產生的變化(例如檔案的增、刪、改操作)即時同步至母公司位於英國(倫敦)地區下名為destbucket的儲存空間,並希望公司全員能及時瞭解srcbucket以及destbucket內與首碼log以及destdir匹配的檔案的變化情況。

為實現以上需求,您需要為srcbucket配置跨地區複製規則,同時還需要為srcbucket以及destbucket配置事件通知。

步驟一:建立隊列

  1. 登入Message ServiceMNS管理主控台

  2. 在左側導覽列,單擊

  3. 在頂部導覽列,選擇華東1(杭州)地區。

  4. 頁面,單擊

  5. 建立隊列面板,隊列名稱設定為myqueue1,其他參數保持預設配置。

  6. 單擊確定

  7. 重複上述步驟在英國(倫敦)地區建立用於接收目標儲存空間destbucket事件通知的隊列myqueue2

步驟二:為srcbucket配置跨地區複製

  1. 登入OSS管理主控台

  2. 單擊Bucket列表,然後單擊srcbucket。

  3. 在左側導覽列,選擇資料管理 > 跨地區複製

  4. 跨地區複製頁面,單擊跨地區複製

  5. 跨地區複製面板,配置以下參數。

    參數

    說明

    目標Bucket

    選擇英國(倫敦),然後選擇destbucket

    資料複製對象

    選擇指定檔案名稱首碼進行同步,並添加首碼destdir/以及log/

    資料複製策略

    選擇增/刪/改同步

    複製歷史資料

    選擇複製

    授權角色

    選擇跨地區複製的授權角色。

  6. 勾選資料跨境合規承諾,然後單擊確定

步驟三:為srcbucket及destbucket配置事件通知

重要

因步驟二中跨地區複製規則中指定了同步歷史資料,且需要同步的歷史資料較多,會觸發大量的訊息。如果您不希望同步歷史資料過程中觸發訊息,建議待歷史資料同步完成後再開啟事件通知。

  1. 為源儲存空間srcbucket配置事件通知。

    1. 登入OSS管理主控台

    2. 單擊Bucket列表,然後單擊srcbucket。

    3. 在左側導覽列,選擇資料處理 > 事件通知

    4. 事件通知頁面,單擊建立規則

    5. 建立規則面板,按如下說明配置各項參數,然後單擊確定

      參數

      說明

      規則名稱

      將事件通知規則名稱設定notification1

      事件類型

      選擇PutObjectCopyObjectDeleteObjectDeleteObjects

      資源描述

      選擇前尾碼,並依次添加首碼log/以及destdir/

      接收終端

      選擇隊列,並填寫步驟一中建立的隊列名稱myqueue1

  2. 為目標儲存空間destbucket配置事件通知。

    1. 單擊左側導覽列的Bucket列表,然後單擊destbucket。

    2. 在左側導覽列,選擇資料處理 > 事件通知

    3. 事件通知頁面,單擊建立規則

    4. 建立規則面板,按如下說明配置各項參數,然後單擊確定

      參數

      說明

      規則名稱

      將事件通知規則名稱設定notification2

      事件類型

      選擇ObjectReplication:ObjectCreatedObjectReplication:ObjectRemovedObjectReplication:ObjectModified

      資源描述

      選擇前尾碼,並依次添加首碼log/以及destdir/

      接收終端

      選擇隊列,並填寫步驟一中建立的隊列名稱myqueue2

以上步驟配置完成後,事件通知規則約10分鐘後生效。

步驟四:接收訊息

當觸發了事件匹配規則時,Message Service將自動建立主題(Topic),Topic名稱格式為mns-en-topics-[Product]-[RuleName]-[Timestamp],例如mns-en-topics-oss-notification1-1700098799。此時,您需要為該Topic建立訂閱,並在訂閱規則中指定接收端地址。

  1. 為Topic建立訂閱。

    1. 登入Message ServiceMNS管理主控台

    2. 在左側導覽列,單擊主題列表

    3. 在頂部導覽列,選擇華東1(杭州)地區。

    4. 在自動建立的Topic右側的操作欄下,單擊查看訂閱

    5. 在目標Topic訂閱頁面,單擊訂閱管理,然後單擊建立訂閱

    6. 建立訂閱頁面,為源儲存空間srcbucket建立訂閱。名稱輸入mysubscription1推送類型選擇隊列接收端地址輸入myqueue1,其他參數保留預設配置。

    7. 單擊確定

    8. 重複上述步驟在英國(倫敦)地區為目標儲存空間destbucket建立訂閱mysubscription2,推送類型選擇隊列,接收端地址指定為myqueue2,其他參數保留預設配置。

  2. 接收通知。

    1. 在左側導覽列,單擊隊列列表

    2. 選擇目標隊列myqueue1右側操作欄下的更多 > 收發訊息

    3. 接收訊息地區,單擊右上方的接收訊息

      此時,您將接收到源儲存空間srcbucket內與首碼log以及destdir匹配的檔案的增、刪、改操作的事件通知。

    4. 重複上述步驟為目標儲存空間destbucket對應的隊列myqueue2配置接收通知。配置完成後,您將接收到destbucket內由於跨地區複製規則產生、覆蓋或者刪除檔案的事件通知。

    當您不再需要接收相關事件通知時,請及時刪除相應的事件通知規則。但是,事件通知規則刪除後,不會同步刪除自動建立的Topic。為避免產生不必要的費用,請及時刪除不再使用的Topic。