视频点播支持HTTP回调和轻量消息队列(原 MNS)回调两种方式,本文为您介绍事件通知的事件类型、回调方式、回调配置、回调协议、回调内容公共参数等基本信息,以及回调判断与重试和常见问题。
事件通知简介
点播服务支持多个存储区域 ,每个区域可以单独配置事件通知的回调方式和回调地址。用户可以上传视频到不同区域的存储,视频处理完成后,点播服务会根据存储区域配置的回调方式和回调地址及时通知用户。
回调body中,返回的URL均为HTTP地址,暂不支持HTTPS地址的返回,如有需要,可以参考事件通知常见问题中的方案解决。
回调方式
点播服务目前支持HTTP回调(兼容HTTPS)、轻量消息队列(原MNS)回调两种方式获取事件通知:
HTTP回调(兼容HTTPS):
HTTP回调是您被动接收视频点播服务事件通知的模式。您需要部署一个HTTP服务来接收回调消息,并在视频点播服务中配置回调URL;当事件产生时,点播服务端会向该URL发起HTTP POST请求,事件通知内容将通过HTTP Body送达。
轻量消息队列(原 MNS)回调:
轻量消息队列(原 MNS)回调是您主动向视频点播服务拉取接收事件通知的模式。您需要授权点播服务访问轻量消息队列(原MNS)并在消息服务中创建队列或使用已有队列,然后在视频点播服务中完成事件通知的配置;当事件产生时,点播服务会将回调内容写入该队列,您需要到消息服务中接收查看消息。在消息服务控制台中创建队列及接收消息的详细操作,请参见队列操作。
HTTP回调与轻量消息队列(原MNS)回调对比
对比项 | HTTP回调 | 轻量消息队列(原MNS)回调(推荐) |
可靠性 | 若您的HTTP消息接收服务存在异常(崩溃或重启),则消息可能会丢失。 | 更为可靠,只要配置正常,消息回调几乎都能成功。 |
安全性 | HTTP方式都可回调该地址,但可配合回调鉴权过滤非法请求,以增强安全性。 如何配置,请参见HTTP回调鉴权。 | 由于仅授权方能读写消息队列,安全性更高。 |
便捷性 | 接入更为方便,只需简单部署消息接收服务。 | 需要额外开通和配置轻量消息队列(原 MNS),并且需要开发和部署消费消息的程序。 |
回调协议
回调内容公共参数
参数名称 | 类型 | 描述 |
EventTime | String | 事件产生时间, 为UTC时间:yyyy-MM-ddTHH:mm:ssZ。 |
EventType | String | 事件类型。 |
VideoId | String | 视频ID。 |
Status | String | 处理状态,取值:
|
Extend | String | 在上传或提交作业接口中,指定UserData;并且若里面包含Extend字段,会在事件完成回调时透传返回用户自定义数据,最大长度512字节。 |
回调判断与重试
HTTP回调
点播服务发起HTTP回调时,若回调接收服务响应的HTTP状态码为200即视为回调成功;响应状态码不为200,或是响应时间超过5秒出现超时,都视为回调失败。点播服务会忽略响应的包体内容,仅以HTTP状态码为准。
若由于配置异常(比如您的回调地址错误、消息接收服务异常等),导致消息回调失败,点播服务会继续重试回调2次,即总共最多回调3次;超过后会丢弃。
轻量消息队列(原 MNS)回调
点播服务发起轻量消息队列(原 MNS)回调时,只要消息写入轻量消息队列(原 MNS)成功即视为回调成功,否则为失败。
若由于配置异常(比如未授权点播服务访问、队列地址不是公网或队列名称不对等),导致消息写入轻量消息队列(原 MNS)失败,点播服务会继续重试2次,即总共最多回调3次;超过后会丢弃。
点播服务在回调失败后会间隔1秒再次发起重试,若总共3次回调仍失败则会丢弃该消息;如要确保可靠通知,建议使用轻量消息队列(原 MNS)回调,其可靠性更高,只要配置正常,几乎能确保消息回调成功。
回调配置
HTTP和MNS回调的配置流程有所差异,均支持通过视频点播控制台和API/SDK的方式配置。详细的配置流程及使用限制请参见如何使用和如何使用。
事件类型
点播目前支持的事件通知类型如下:
事件类型 | 参考文档 |
FileUploadComplete | |
ImageUploadComplete | |
StreamTranscodeComplete | |
TranscodeComplete | |
SnapshotComplete | |
DynamicImageComplete | |
AddLiveRecordVideoComplete | |
LiveRecordVideoComposeStart | |
UploadByURLComplete | |
UploadByURLComplete | |
CreateAuditComplete | |
VideoAnalysisComplete | |
UpdateMediaStorageClassComplete | |
RestoreMediaComplete | |
AttachedMediaUploadComplete | |
ProduceMediaComplete | |
DeleteMediaComplete | |
MediaBaseChangeComplete | |
SubmitMediaRefreshComplete |
常见问题
使用过程中遇到问题时(例如:如何从回调中获取到HTTPS地址?如何实现多回调地址?),请参见事件通知常见问题。