天天看点

OSS 入门基础篇-OSS 事件通知

作者:张医博

功能描述:

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

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

开通须知

1、通知方式分为 HTTP 通知和队列通知。

  • HTTP 是用户填入一个服务器的 URL地址,OSS 在监测到客户操作完成后,去 POST URL 地址回调用户;
  • 队列的方式需要用户开通阿里云的 MNS 服务,配置好队列后在 OSS 控制台填入队列名称,OSS 通过 MNS 回调用户;
OSS 入门基础篇-OSS 事件通知

2、系统会自动为新建的规则创建主题,主题实例可能产生费用,详见 消息服务价格。

3、删除规则后,主题不会自动删除,可以登录 消息服务控制台 进行删除。

4、规则配置分为两种,根据资源描述分为:全名、前后缀。很多用户在这里遇到了坑,需要注意。

  • 全名:用户上传的文件必须和规则配置的绝对一致才会触发,比如全名是

    bucket/image/1.png

    ,那用户上传也要是

    image/1.png

    ,如果上传的是

    image/2.png

    就不会通知;
  • 前后缀:用户上传的文件前缀或者后缀满足条件即可触发。比如前缀为

    bucket/202003-

    ,这种规则可以匹配到

    202003-01

    202003-02....

    ,如果配置的后缀为

    bucket/202003-/jpg

    ,可以匹配到

    202003-01/1.jpg

    202003-02/2.jpg

常见问题分析

场景一:控制台上配置事件通知报错,configurationcountlimitexception

出现这种问题异常后说明默认的,mns 产品的事件通知已经达到上限(默认是 10),如果想要提升数量请提交工单联系 mns 支持人员提升,非 OSS 故障。

OSS 入门基础篇-OSS 事件通知

场景二:ossutil 上传文件成功,但是客户配置的 mns 队列没有收到通知

可能导致问题原因如下:

  • 用户上传失败 ,有可能被劫持虽然反馈了状态码,但是没有返回 x-oss-requestid 标识,建议用户把判断成功标准改为 httpcode ==200 ,并且 requestID != null;
  • mns 产品可能出现消息堆积,需要提交工单确认;
  • 用户配置的 oss 事件类型不全,比如 OSS 控制台用的是 PostObject ,ossutil 上传大文件使用的分片传输。如果规则没配置全就不会触发;
  • 用户上传文件的 prefix 和事件通知配置的不符,或者用户使用的是全名匹配但上传用的是前后缀;
  • 用户配置的是前后缀规则,但是前缀并不是单独创建的 object,而且上传文件时和 object 一起创建的,比如,用户如过是通过这种方式 创建的 imageprefix/1.png,那 imageprefix 不在是一个独立的前缀,而是和 imageprefix/1.png 绑定在一起;