媒资 AIGC 如何接收事件通知

这篇以在用户端上传一个视频为例,向开发者展示智能创作 事件通知机制 的使用方法。

相关产品
媒资 AIGC 产品页,含版本规格、价格与购买入口。

一、架构和流程

开发者搭建一个 HTTP 服务,接收来自智能创作的事件通知请求。这篇档以该服务通过对 Storage.NewFileCreated 的处理,实现获取用户在用户端上传视频的媒体 ID 及云点播 FileId 等其它信息为例,来介绍事件通知服务的实现方法。

系统主要由三个部分组成:用户端、事件接收服务、智能创作,其中事件接收服务是这篇档需要实现及部署的服务。其架构如下:

具体业务流程为:

1. 用户端上传一个视频到智能创作。

2. 智能创作后台发起 Storage.NewFileCreated 事件通知请求给事件接收服务。

3. 事件接收服务解析事件通知内容,将新文件的媒体 ID 及云点播 FileId 打印到日志中。

二、接口约定

本教程中约定,事件接收服务暴露的接口形式如下:

·事件接收服务的 URL 地址为 https://api.example.com/callback。

·智能创作以 HTTP POST 方式发起事件通知,通过 BODY 传递事件通知内容。

三、案例中所用到的素材

视频:

四、创建智能创作平台

请参见 创建标准型平台 创建一个智能创作平台。

注意:若已创建智能创作平台,请忽略此步骤。

五、步骤1:部署后端服务框架

本教程基于 Node.js 以及 koa 框架进行开发(你也可以替换成你熟悉的编程语言与框架)。也可以使用腾讯云轻量应用服务器(Lighthouse)或无服务器云函数(SCF)快速部署,请参见:

·Lighthouse:搭建 Node.js 开发环境。

·SCF:快速部署 Koa 框架。

事件通知服务的主框架代码如下:

const Koa = require('koa')const Router = require('koa-router')const bodyparser = require('koa-bodyparser');const app = new Koa()const router = new Router()// 示例请求路由代码,后续会将其用正式路由替换router.post('/hello', (ctx, next) => { ctx.body = 'world'})app.use(bodyparser());app.use(router.routes())app.listen(80)

部署服务,并访问 http://api.example.com/hello,接口将返回文本 world。

六、步骤2:开发事件接收服务接口(Callback)

主要流程如下:

1. 接收请求,从 BODY 中解析出新文件的媒体 ID 及云点播 FileId。

2. 在日志中输出媒体 ID 及云点播 FileId。

3. 组装应答。

在 App 的路由部分增加如下代码,来支持 Callback 路径的路由:

const fileCreatedEventType = "Storage.NewFileCreated"router.post('/Callback', async cxt => { //获取post传递的数据 const body = cxt.request.body const eventtype = body.EventType if (eventtype === null) { console.log("invalid EventType") ctx.body = { Code: "Failed", } return } switch (eventtype) { case fileCreatedEventType: const event = body.StorageNewFileCreatedEvent console.log("MaterialId: " + event.MaterialId) console.log("FileId: " + event.FileId) default: console.log("EventType: " + eventtype) } ctx.body = { Code: "Success", }});

注意:智能创作只判断 HTTP 返回码,如果是 200 即认为成功,否则会重试回调三次。

七、步骤3:配置事件通知地址

配置事件通知地址请参阅 开通事件回调 提工单,由智能创作工作人员配置。

八、步骤4:测试事件接收服务

按照 网盘-上传综述 指引的方式上传视频。等待视频上传成功后,登录到事件通知服务,应该可以看到日志中打印出媒体 Id 及云点播 FileId。

注意:目前事件通知是以智能创作 平台 为单位配置,上传视频所使用的用户端平台必须与事件通知配置的平台一致,否则无法接收到事件通知。

赞 (0)
上一篇 4天前
下一篇 4天前