作者:张医博
功能描述:
您可以在创建事件通知规则的时候,自定义您关注的Object信息,当这些资源发生变化后,您可以第一时间收到通知。例如:
- 有新数据从图片内容分享平台、音视频平台上传到OSS。
- OSS上的相关内容发生了更新。
- OSS上的重要文件被删除。
- OSS上数据同步已经完成。
开通须知
1、通知方式分为 HTTP 通知和队列通知。
- HTTP 是用户填入一个服务器的 URL地址,OSS 在监测到客户操作完成后,去 POST URL 地址回调用户;
- 队列的方式需要用户开通阿里云的 MNS 服务,配置好队列后在 OSS 控制台填入队列名称,OSS 通过 MNS 回调用户;
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 故障。
场景二:ossutil 上传文件成功,但是客户配置的 mns 队列没有收到通知
可能导致问题原因如下:
- 用户上传失败 ,有可能被劫持虽然反馈了状态码,但是没有返回 x-oss-requestid 标识,建议用户把判断成功标准改为 httpcode ==200 ,并且 requestID != null;
- mns 产品可能出现消息堆积,需要提交工单确认;
- 用户配置的 oss 事件类型不全,比如 OSS 控制台用的是 PostObject ,ossutil 上传大文件使用的分片传输。如果规则没配置全就不会触发;
- 用户上传文件的 prefix 和事件通知配置的不符,或者用户使用的是全名匹配但上传用的是前后缀;
- 用户配置的是前后缀规则,但是前缀并不是单独创建的 object,而且上传文件时和 object 一起创建的,比如,用户如过是通过这种方式 创建的 imageprefix/1.png,那 imageprefix 不在是一个独立的前缀,而是和 imageprefix/1.png 绑定在一起;