对象存储服务 OBS-事件通知:事件通知消息结构

时间:2023-12-26 20:32:21

事件通知消息结构

OBS发布的事件通知消息是具有以下结构的JSON消息。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
{  
    "Records":[
        {
            "eventVersion":"", //版本号,目前为"3.0"
            "eventSource":"", //消息源,固定为"OBS"
            "eventRegion":"", //事件所在的region
            "eventTime":"", //事件时间,格式为ISO-8601,示例:2020-07-10T09:24:11.418Z
            "eventName":"", //触发事件通知的事件名
            "userIdentity":{
                "ID":"" //触发事件的用户对应的计费ID
            },
            "requestParameters":{
                "sourceIPAddress":"" //请求的源IP
            },
            "responseElements":{
                "x-obs-request-id":"", //请求对应的requestid
                "x-obs-id-2":"" //帮助定位问题的特殊符号
            },
            "obs":{
                "Version":"1.0",
                "configurationId":"", //此事件匹配的OBS中事件通知规则的名称
                "bucket":{
                    "name":"examplebucket",
                    "ownerIdentity":{
                        "ID":"" //桶拥有者的账号ID
                    },
                    "bucket":"" //桶名
                },
               "object":{
                    "key":"", //对象名
                    "eTag":"", //对象的etag
                    "size": , //对象的大小
                    "versionId":"null", //对象的版本ID
                    "sequencer":""  //确定某个特定对象事件顺序的标识
                }
            }
        }
    ]
}

请注意以下几点:

  • 您可以通过“responseElements”键值来跟踪OBS的请求。其中,“x-obs-request-id”和“x-obs-id-2”均可用于跟踪单个请求,这两个参数的值即OBS响应请求时返回的值。
  • “obs”键值包含了事件中涉及的桶和对象的相关信息。其中,对象键名称进行了URL编码,例如,“TEST/中 文.jpg”将变为“TEST%2F%E4%B8%AD+%E6%96%87%2F.jpg”。

    二次开发时,如果使用OBS SDK下载此对象 ,则需要先对对象名进行URL解码,再调用下载接口。而如果直接使用浏览器访问此对象,则不需要解码。

  • “sequencer”键值可以确定事件顺序。通常情况下,事件通知并非按照事件发生的顺序进行提示,但是创建对象(PUT)和删除对象(DELETE)的事件通知包含sequencer,该键值可帮助确定特定对象的事件顺序。比较同一对象键上的两个事件通知的十六进制sequencer字符串时,sequencer值越大,事件发生越晚。
    1. sequencer不能用于确定不同对象键上的事件顺序。
    2. sequencer确定的事件顺序仅供参考,该方法不适用于高可靠性系统。
support.huaweicloud.com/ugobs-obs/obs_41_0045.html