消息通知

异步处理请求返回时仅返回任务ID,您需要在处理请求内添加消息通知参数,以在数据处理完成时获取到数据处理任务的结果。

注意事项

  • 仅异步处理支持消息通知。

  • 消息通知仅支持轻量消息队列SMQ(原MNS)主题。关于SMQ的更多信息,请参见SMQ快速入门

参数说明

使用notify参数时,您需要携带以下选项:

参数

是否必选

描述

topic

SMQ主题名称。

  • SMQ主题需要和Bucket处于同一地域。

  • 填写的主题名称需经过URL安全的Base64编码。例如名称为test,填写时为dGVzdA==。您可以使用水印编码工具进行编码处理。

如何获取SMQ主题名称,请参见如何通过控制台查看您的SMQ主题名称?

使用REST API

如果对程序自定义要求较高,您可以直接发起REST API请求。直接发起REST API请求需要手动编写代码计算签名。

您可以在调用PostObject接口处理服务时,通过Body的方式传递x-oss-async-process,然后在处理请求中增加notify参数接收处理结果消息通知,消息通知仅支持SMQ主题,关于SMQ的使用,请参见Python SDK版本说明

如下列举各种接收SMQ消息通知场景的处理示例。

使用处理参数处理文档转换并接收SMQ消息通知

转换信息

  • 转换前

    • 文件类型:DOCX

    • 文件名称:example.docx

  • 转换后

    • 文件类型:PNG

    • 文件存储路径:oss://test-bucket/doc_images/

  • 消息通知

    将转换结果通知发送到主题名称为test-topicSMQ。

处理示例

POST /exmaple.docx?x-oss-async-process HTTP/1.1
Host: doc-demo.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 28 Oct 2022 06:40:10 GMT
Authorization: SignatureValue

// 将类型为DOCX的文件example.docx转换为PNG格式的图片文件,并将转换完成的图片存储到oss://test-bucket/doc_images/路径中,最后将转换结果通知发送到主题名称为test-topic的SMQ。
x-oss-async-process=doc/convert,target_png,source_docx|sys/saveas,b_dGVzdC1idWNrZXQ,o_ZG9jX2ltYWdlcy97aW5kZXh9LnBuZw/notify,topic_dGVzdC10b3BpYw

使用样式参数处理视频转码并转存至指定Bucket

转码信息

  • 转码前

    • 视频格式:AVI

    • 视频名称:example.avi

  • 转码后

    • 视频格式:MP4

    • 视频名称:outobjprefix.mp4

    • 视频存储路径:oss://outbucket/outobjprefix.mp4

  • 消息通知

    将转码结果通知发送到主题名称为test-topicSMQ。

POST /exmaple.avi?x-oss-async-process HTTP/1.1
Host: video-demo.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 28 Oct 2022 06:40:10 GMT
Authorization: OSS qn6q**************:77Dv****************
 
 // 使用名为examplestyle的样式将文件example.avi进行视频转码,转码完成后将得到的文件保存为oss://outbucket/outobjprefix.mp4,最后将转换结果通知发送到主题名称为test-topic的SMQ。
x-oss-async-process=style/examplestyle|sys/saveas,b_b3V0YnVja2V0,o_b3V0b2JqcHJlZml4LnthdXRvZXh0fQ/notify,topic_dGVzdC10b3BpYw

x-oss-process操作对应消息格式

功能模块

x-oss-process操作

消息格式

文档处理

doc/convert

CreateOfficeConversionTask接口MNS消息示例

媒体处理

CreateMediaConvertTask接口MNS消息示例

文件处理

pointcloud/compress

CreateCompressPointCloudTask接口MNS消息示例

常见问题

如何通过控制台查看您的SMQ主题名称?

为了帮助您更清晰地配置与OSS事件通知相关的轻量消息队列SMQ(原MNS)主题,您可以参照如下步骤找到并确认与OSS同区域的SMQ主题名称。

  1. 登录轻量消息队列SMQ(原MNS)控制台

  2. 在控制台顶部菜单栏,确保您选择了与您的OSS Bucket相同的地域。

  3. 在左侧导航栏中,点击主题模型 > 主题列表,展示出当前区域下所有已创建的主题。

  4. 浏览主题列表,寻找与您的OSS事件通知配置相匹配的主题名称。

    image

通过以上步骤,您可以有效地定位并配置与OSS同区域的SMQ主题名称,确保OSS事件能够被正确地发送到消息队列中进行处理。