本文為您介紹HTTP回調事件通知的回調機制、使用流程及鑒權原理。
HTTP回調機制
您需要自行部署一個HTTP服務來接收回調消息,并在點播中配置回調URL。
當事件產生時,點播服務端會向該URL發起HTTP POST請求,事件通知內容將通過HTTP Body送達。
您的HTTP服務對HTTP POST請求進行簽名認證鑒權,鑒權成功則響應狀態碼200即視為回調成功,若響應其他狀態碼或響應超時則視為回調失敗。鑒權原理請參見HTTP回調鑒權原理。
回調成功后,您配置的回調URL中將接收到相應的事件通知內容。回調失敗后,點播服務會繼續重試回調2次,即總共最多回調3次;超過3次后則會丟棄本次回調事件通知。詳細的回調判斷與重試邏輯請參見回調判斷與重試。
如何使用
前提條件
您已部署用于接收回調消息的HTTP/HTTPS服務。
您已經注冊了阿里云賬號并完成賬號實名認證。注冊地址請參見阿里云官網。注冊指引請參見注冊阿里云賬號。實名認證指引請參見個人實名認證或企業實名認證。
您已經開通了視頻點播服務。開通步驟請參見開通視頻點播服務。
使用說明
視頻點播服務支持多個服務地域,各服務地域之間的事件通知配置是相互獨立的,即每個地域可以單獨配置事件通知的回調方式和回調地址。
HTTP方式回調支持多地址回調,可滿足多環境的開發需求。詳情請參見設置多地址回調。
使用流程
在視頻點播服務中配置HTTP回調方式的事件通知。
說明通過點播控制臺方式設置的回調為針對視頻點播服務全局的回調配置;通過OpenAPI方式支持對視頻點播服務進行全局配置回調或單次請求覆蓋回調。
通過控制臺設置HTTP回調
登錄視頻點播控制臺。
在左側導航欄選擇配置管理 > 媒體處理配置 > 回調設置,進入到回調設置頁面。
單擊頁面頂部工作臺右側的服務地域,切換到目標服務地域下。
配置回調設置。
單擊回調設置旁的修改設置。
配置回調參數。
參數名稱
參數說明
回調方式
選擇HTTP請求。
回調URL
設置接收消息回調的URL,當產生回調事件時,點播服務端會向該URL發起HTTP POST請求。
URL長度不超過256字節,不支持設置多個URL。
回調事件
按需勾選相應類型的事件通知,視頻點播支持的事件通知類型及各事件通知含義請參見事件列表。
說明勾選視頻AI處理完成后,所有的AI事件,包括AIMediaAuditComplete、AIMediaDNAComplete、AIVideoTagComplete,無論哪個AI事件完成后都會觸發通知。
單擊確定,完成回調設置的配置。
可選:配置回調鑒權。
當回調方式為HTTP請求時,您可以通過在HTTP(含HTTPS)頭部增加鑒權參數,供回調消息接收服務端進行簽名認證,防止非法或無效請求。
打開回調鑒權開關,或單擊回調鑒權右側的修改設置。
設置鑒權密鑰。
該鑒權密鑰即為簽名算法中的
AuthKey
字段,詳情參見簽名算法。該密鑰由您自定義,最長32位,必須同時包含大寫字母、小寫字母和數字。單擊確定,完成配置。
開啟回調鑒權后,您部署的用于接收回調消息的HTTP/HTTPS服務端需自行配置相應的鑒權邏輯進行鑒權,具體請參見HTTP回調鑒權原理。
通過OpenAPI設置HTTP回調
通過調用不同的接口,支持對視頻點播服務進行全局配置回調或單次請求覆蓋回調。
全局配置:調用SetMessageCallback - 設置事件通知配置接口,請求參數
CallbackType
指定為HTTP
,并配置CallbackURL
(回調地址)、EventTypeList
(回調事件類型)等其他參數。單次請求覆蓋:調用接口上傳媒資文件或發起媒體處理任務時,通過指定請求參數
UserData
中的MessageCallback字段來設置單次請求的回調地址。涉及的API如下:
說明通過指定
UserData
中的MessageCallback
字段來設置回調時,必須先開啟視頻點播的全局事件通知,并配置相應的回調事件類型后,此處的回調配置才能生效。觸發回調事件。
完成事件通知配置后,您可以在視頻點播服務中執行上傳媒資文件(音/視頻或圖片),發起媒體處理(轉碼、截圖等)等操作來觸發相應的回調事件產生。
接收回調事件。
當回調事件產生后,若回調成功,您可以在您部署的回調接收服務中查看回調事件通知。
HTTP回調鑒權原理
當回調方式為HTTP請求時,您可以通過在HTTP(含HTTPS)頭部增加鑒權參數,供回調消息接收服務端進行簽名認證,以防止非法或無效請求。
使用說明
HTTP回調鑒權是否開啟由您自行決定(建議開啟)。一旦設置了AuthKey(鑒權密鑰),則回調時會攜帶所有鑒權相關內容,供回調消息接收服務端進行鑒權使用,即設置AuthKey不會影響原有功能,具體是否校驗由您自行決定。
如果未設置AuthKey,HTTP回調功能也不會受任何影響。
鑒權參數
在回調HTTP頭部增加的具體鑒權參數如下:
字段 | 描述 |
X-VOD-TIMESTAMP | UNIX時間戳,整型正數,固定長度10,1970年1月1日以來的秒數,表示回調請求發起時間。 |
X-VOD-SIGNATURE | 簽名字符串,為32位MD5值,詳細說明請參見下文簽名算法。 |
簽名算法
X-VOD-SIGNATURE的計算依賴如下字段:
字段 | 示例 | 描述 |
回調URL | https://www.example.com/your/callback | 用戶設置的回調地址。 |
X-VOD-TIMESTAMP | 1519375990 | UNIX時間戳,整型正數,固定長度10,1970年1月1日以來的秒數,表示回調請求發起時間。 |
AuthKey | Test123 | 用戶預設的鑒權密鑰,最長32位,必須同時包含大寫字母、小寫字母和數字。 |
將上述三個字段進行拼接,字段中間以豎線(|)分割,后計算MD5值,即:
MD5Content = 回調URL|X-VOD-TIMESTAMP|AuthKey
X-VOD-SIGNATURE = md5sum(MD5Content)
X-VOD-SIGNATURE字段計算方法示例如下:
X-VOD-SIGNATURE = md5sum(https://www.example.com/your/callback|1519375990|Test123) = c72b60894140fa98920f1279219b****
回調消息接收服務端校驗規則
回調消息接收端將回調所設置的回調URL、X-VOD-TIMESTAMP取值、AuthKey字符串拼接后,進行MD5值計算,得到加密串,再將加密串與X-VOD-SIGNATURE字段進行對比,如果不一致,則請求非法。
回調消息接收端獲取當前時間,與回調請求所帶的X-VOD-TIMESTAMP字段時間相減,如果超過回調消息接收服務端所設定的指定時間(如5分鐘,由回調消息接收服務端自行定義),則認為該請求無效。
說明由于時間設置等問題,時間差值可能會有誤差,回調消息接收服務端可自行決定是否進行該校驗。
AuthKey切換
用戶在切換AuthKey時,為保證回調功能不受影響,回調消息接收服務端需要兼容新舊兩個AuthKey的平滑切換,即在一段時間內兼容新舊兩個AuthKey的鑒權,由回調消息接收服務端完成。
建議操作順序如下:
用戶定義新的AuthKey。
用戶升級回調消息接收服務端,兼容新、舊兩個AuthKey的鑒權。
在點播控制臺將AuthKey更新成最新。
觀察一段時間后,回調消息接收服務端去掉對原來舊AuthKey的兼容。
切換完成。
相關文檔
有關HTTP回調與MNS回調的對比,請參見HTTP回調與MNS回調對比。
使用過程中遇到問題時,請參見事件通知常見問題。