事件通知概述
視頻點播支持HTTP回調(diào)和輕量消息隊列(原 MNS)回調(diào)兩種方式,本文為您介紹事件通知的事件類型、回調(diào)方式、回調(diào)配置、回調(diào)協(xié)議、回調(diào)內(nèi)容公共參數(shù)等基本信息,以及回調(diào)判斷與重試和常見問題。
事件通知簡介
點播服務(wù)支持多個存儲區(qū)域 ,每個區(qū)域可以單獨配置事件通知的回調(diào)方式和回調(diào)地址。用戶可以上傳視頻到不同區(qū)域的存儲,視頻處理完成后,點播服務(wù)會根據(jù)存儲區(qū)域配置的回調(diào)方式和回調(diào)地址及時通知用戶。
回調(diào)body中,返回的URL均為HTTP地址,暫不支持HTTPS地址的返回,如有需要,可以參考事件通知常見問題中的方案解決。
回調(diào)方式
點播服務(wù)目前支持HTTP回調(diào)(兼容HTTPS)、輕量消息隊列(原MNS)回調(diào)兩種方式獲取事件通知:
HTTP回調(diào)(兼容HTTPS):
HTTP回調(diào)是您被動接收視頻點播服務(wù)事件通知的模式。您需要部署一個HTTP服務(wù)來接收回調(diào)消息,并在視頻點播服務(wù)中配置回調(diào)URL;當事件產(chǎn)生時,點播服務(wù)端會向該URL發(fā)起HTTP POST請求,事件通知內(nèi)容將通過HTTP Body送達。
輕量消息隊列(原 MNS)回調(diào):
輕量消息隊列(原 MNS)回調(diào)是您主動向視頻點播服務(wù)拉取接收事件通知的模式。您需要授權(quán)點播服務(wù)訪問輕量消息隊列(原MNS)并在消息服務(wù)中創(chuàng)建隊列或使用已有隊列,然后在視頻點播服務(wù)中完成事件通知的配置;當事件產(chǎn)生時,點播服務(wù)會將回調(diào)內(nèi)容寫入該隊列,您需要到消息服務(wù)中接收查看消息。在消息服務(wù)控制臺中創(chuàng)建隊列及接收消息的詳細操作,請參見隊列操作。
HTTP回調(diào)與輕量消息隊列(原MNS)回調(diào)對比
對比項 | HTTP回調(diào) | 輕量消息隊列(原MNS)回調(diào)(推薦) |
可靠性 | 若您的HTTP消息接收服務(wù)存在異常(崩潰或重啟),則消息可能會丟失。 | 更為可靠,只要配置正常,消息回調(diào)幾乎都能成功。 |
安全性 | HTTP方式都可回調(diào)該地址,但可配合回調(diào)鑒權(quán)過濾非法請求,以增強安全性。 如何配置,請參見HTTP回調(diào)鑒權(quán)。 | 由于僅授權(quán)方能讀寫消息隊列,安全性更高。 |
便捷性 | 接入更為方便,只需簡單部署消息接收服務(wù)。 | 需要額外開通和配置輕量消息隊列(原 MNS),并且需要開發(fā)和部署消費消息的程序。 |
回調(diào)協(xié)議
回調(diào)內(nèi)容公共參數(shù)
參數(shù)名稱 | 類型 | 描述 |
EventTime | String | 事件產(chǎn)生時間, 為UTC時間:yyyy-MM-ddTHH:mm:ssZ。 |
EventType | String | 事件類型。 |
VideoId | String | 視頻ID。 |
Status | String | 處理狀態(tài),取值:
|
Extend | String | 在上傳或提交作業(yè)接口中,指定UserData;并且若里面包含Extend字段,會在事件完成回調(diào)時透傳返回用戶自定義數(shù)據(jù),最大長度512字節(jié)。 |
回調(diào)判斷與重試
HTTP回調(diào)
點播服務(wù)發(fā)起HTTP回調(diào)時,若回調(diào)接收服務(wù)響應(yīng)的HTTP狀態(tài)碼為200即視為回調(diào)成功;響應(yīng)狀態(tài)碼不為200,或是響應(yīng)時間超過5秒出現(xiàn)超時,都視為回調(diào)失敗。點播服務(wù)會忽略響應(yīng)的包體內(nèi)容,僅以HTTP狀態(tài)碼為準。
若由于配置異常(比如您的回調(diào)地址錯誤、消息接收服務(wù)異常等),導(dǎo)致消息回調(diào)失敗,點播服務(wù)會繼續(xù)重試回調(diào)2次,即總共最多回調(diào)3次;超過后會丟棄。
輕量消息隊列(原 MNS)回調(diào)
點播服務(wù)發(fā)起輕量消息隊列(原 MNS)回調(diào)時,只要消息寫入輕量消息隊列(原 MNS)成功即視為回調(diào)成功,否則為失敗。
若由于配置異常(比如未授權(quán)點播服務(wù)訪問、隊列地址不是公網(wǎng)或隊列名稱不對等),導(dǎo)致消息寫入輕量消息隊列(原 MNS)失敗,點播服務(wù)會繼續(xù)重試2次,即總共最多回調(diào)3次;超過后會丟棄。
點播服務(wù)在回調(diào)失敗后會間隔1秒再次發(fā)起重試,若總共3次回調(diào)仍失敗則會丟棄該消息;如要確保可靠通知,建議使用輕量消息隊列(原 MNS)回調(diào),其可靠性更高,只要配置正常,幾乎能確保消息回調(diào)成功。
回調(diào)配置
HTTP和MNS回調(diào)的配置流程有所差異,均支持通過視頻點播控制臺和API/SDK的方式配置。詳細的配置流程及使用限制請參見如何使用和如何使用。
事件類型
點播目前支持的事件通知類型如下:
事件類型 | 參考文檔 |
FileUploadComplete | |
ImageUploadComplete | |
StreamTranscodeComplete | |
TranscodeComplete | |
SnapshotComplete | |
DynamicImageComplete | |
AddLiveRecordVideoComplete | |
LiveRecordVideoComposeStart | |
UploadByURLComplete | |
UploadByURLComplete | |
CreateAuditComplete | |
AIMediaAuditComplete 說明 對應(yīng)視頻點播控制臺上的視頻AI處理完成事件。 | |
VideoAnalysisComplete | |
UpdateMediaStorageClassComplete | |
RestoreMediaComplete | |
AIMediaDNAComplete 說明 對應(yīng)視頻點播控制臺上的視頻AI處理完成事件。 | |
AIVideoTagComplete 說明 對應(yīng)視頻點播控制臺上的視頻AI處理完成事件。 | |
AttachedMediaUploadComplete | |
ProduceMediaComplete | |
DeleteMediaComplete | |
MediaBaseChangeComplete | |
SubmitMediaRefreshComplete |
常見問題
使用過程中遇到問題時(例如:如何從回調(diào)中獲取到HTTPS地址?如何實現(xiàn)多回調(diào)地址?),請參見事件通知常見問題。