当你需要对对象存储 OSS(Object Storage Service)中的文件变动进行实时处理、同步、监听、业务触发、日志记录等操作时, 你可以通过设置 OSS 的事件通知规则,自定义关注的文件,并将 OSS 事件推送到轻量消息队列(原 MNS)的队列或主题中,开发者的服务即可及时收到相关通知,并通过消费消息进行后续的业务处理。
方案简介
如下图所示,如果你创建了事件通知规则,当你在请求 OSS 进行相关操作时,轻量消息队列(原 MNS)将 OSS 指定资源上产生的事件以消息的方式推送到接收端。
在请求 OSS 进行相关操作时,事件通知通过在返回的 Response 中增加 Header 来描述触发事件通知的结果,不会影响原定接口的返回值。如果没有匹配事件通知的规则,则不会增加 Header;如果匹配成功,不管事件通知是否触发成功,都会增加这个 Header。Header 格式如下:
x-oss-process-status: 'ewogICAgImNvZGUiOiAiU3VjY2VzcyIsCiAgICAibWVzc2FnZSI6ICJOb3RpZmljYXRpb25TdWNjZWVkIiwKICAgICJ0eXBlIjogIkV2ZW50Tm90aWZpY2F****'
- key:x-oss-process-status
- value:经过 Base64 编码,解码后为:
{
"code":"Success", //此次触发事件通知的结果。如果成功,返回Success,否则为Fail。Success表示OSS将消息发送到了主题,并不代表主题将消息推送到了Endpoint。
"message":"NotificationSucceed", //此次操作的详细描述。如果失败,此处会说明失败的原因。
"type":"EventNotification", //操作类型。事件通知的操作类型统一为EventNotification。
"version":"1.0"
}
更多消息推送的类型,请参见订阅类型 [ 1] 。
适用场景
- 当你授权其他用户对你的资源(Bucket)进行某些操作的权限,且希望关注这些操作,可以通过创建规则,在这些操作发生时主动通知你。
- 通过事件通知的方式进行数据分析、查看一段时间内某个操作发生的次数,分析你的业务最近的发展趋势。你还可以将这些事件通知的消息导入其他服务,例如 EMR,进一步进行自定义分析。
- 通过事件通知监控你的资源上发生的某些操作的 QPS 等指标。
立即体验
【限时有奖】轻量消息队列(原 MNS)订阅 OSS 事件实践
- 活动时间: 2025.2.10 - 2.28
- 参与方式: 点击链接 https://developer.aliyun.com/topic/mns/202501 即可参与活动
- 活动规则: 根据实验手册完成实操,上传收发消息截图,即可获得 ins 风 u 型枕!
了解更多
轻量消息队列(原 MNS)凭借简单队列模型、无损发布能力、按量付费,成为众多云产品首选的消息通道。通过一张图带你快速了解~
相关链接:
[1] 订阅类型
https://help.aliyun.com/zh/mns/user-guide/push-messages-to-a-queue#concept-2028805