天天看點

手把手教您對象存儲OSS事件通知的重要操作!

雲栖号快速入門: 【點選檢視更多雲産品快速入門】 不知道怎麼入門?這裡分分鐘解決新手入門等基礎問題,可快速完成産品配置操作!

對象存儲OSS支援事件通知功能,您可以通過配置事件通知,及時了解您的OSS資源上的相關操作。

您可以在建立事件通知規則的時候,自定義您關注的Object資訊,當這些資源發生變化後,您可以第一時間收到通知。例如:

  • 有新資料從圖檔内容分享平台、音視訊平台上傳到OSS。
  • OSS上的相關内容發生了更新。
  • OSS上的重要檔案被删除。
  • OSS上資料同步已經完成。
手把手教您對象存儲OSS事件通知的重要操作!

OSS事件通知是異步進行的,不影響正常的OSS操作。事件通知的配置包括規則和消息通知兩部分。

  • 規則:用來描述什麼情況下需要OSS進行消息通知。
  • 消息通知:基于阿裡雲消息服務MNS實作,提供多種通知方式。

    OSS事件通知整體架構如下圖:

手把手教您對象存儲OSS事件通知的重要操作!

操作方式

配置事件通知功能請參見

配置事件通知

事件類型清單

手把手教您對象存儲OSS事件通知的重要操作!

事件通知消息格式

OSS的事件通知消息内容是經過Base64編碼的,解碼後是JSON格式,具體内容如下:

{"events": [{
    "eventName": "",  //事件通知類型
    "eventSource": "", //消息源,固定為"acs:oss"
    "eventTime": "", //事件時間,格式為ISO-8601
    "eventVersion": "", //版本号,目前為"1.0"
    "oss": {
        "bucket": {
            "arn": "", //bucket的唯一辨別符,格式為"acs:oss:region:uid:bucket"
            "name": "", //bucket名稱
            "ownerIdentity": ""}, //bucket的owner
        "object": {
            "deltaSize": , //object大小的變化量,比如新增一個檔案,這個值就是檔案大小,如果是覆寫一個檔案,這個值就是新檔案與舊檔案的內插補點,是以可能為負數
            "eTag": "", //object的etag,與GetObject()請求傳回的ETag頭的内容相同
            "key": "", //object名稱
            "position":, //可變項,隻有在ObjectCreated:AppendObject事件中才有,表示此次請求開始append的位置,注意是從0開始
            "readFrom": , //可變項,隻有在ObjectDownloaded:GetObject事件中才有,表示檔案開始讀取的位置,如果不是Range請求,則此項為0,否則則是Range請求的開始位元組,注意是從0開始
            "readTo": , //可變項,隻有在ObjectDownloaded:GetObject事件中才有,表示檔案最後讀取的位置,如果不是Range請求,則此項為檔案的大小,否則則是Range請求的結束位元組增1
            "size": }, //object大小
        "ossSchemaVersion": "", //此字段域的版本号,目前為"1.0"
        "ruleId": "GetObject"}, //此事件比對的規則ID
        "region": "", //bucket所在的region
        "requestParameters": {
            "sourceIPAddress": ""}, //請求的源IP
        "responseElements": {
            "requestId": ""}, //請求對應的requestid
        "userIdentity": {
            "principalId": ""}, //請求發起者的uid
        "xVars": {  //oss的callback功能中的自定義參數
            "x:callback-var1":"value1",
            "x:vallback-var2":"value2"}}]}           

示例:

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

本文來自 阿裡雲文檔中心

對象存儲OSS 事件通知

【雲栖号線上課堂】每天都有産品技術專家分享!

課程位址:

https://yqh.aliyun.com/zhibo

立即加入社群,與專家面對面,及時了解課程最新動态!

【雲栖号線上課堂 社群】

https://c.tb.cn/F3.Z8gvnK