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

  1. 云栖社区>
  2. 博客>
  3. 正文

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

小生生 2020-03-23 19:52:38 浏览264
展开阅读全文

云栖号快速入门:【点击查看更多云产品快速入门】
不知道怎么入门?这里分分钟解决新手入门等基础问题,可快速完成产品配置操作!

对象存储OSS支持事件通知功能,您可以通过配置事件通知,及时了解您的OSS资源上的相关操作。

您可以在创建事件通知规则的时候,自定义您关注的Object信息,当这些资源发生变化后,您可以第一时间收到通知。例如:

  • 有新数据从图片内容分享平台、音视频平台上传到OSS。
  • OSS上的相关内容发生了更新。
  • OSS上的重要文件被删除。
  • OSS上数据同步已经完成。

679E206E_9192_464c_A84F_871774D7767F

OSS事件通知是异步进行的,不影响正常的OSS操作。事件通知的配置包括规则消息通知两部分。

  • 规则:用来描述什么情况下需要OSS进行消息通知。
  • 消息通知:基于阿里云消息服务MNS实现,提供多种通知方式。
    OSS事件通知整体架构如下图:

image

操作方式

配置事件通知功能请参见配置事件通知

事件类型列表

7262338D_752E_4878_82F5_560994BA3030

事件通知消息格式

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

网友评论

登录后评论
0/500
评论