如果您有多個環境(如開發、測試和生產等環境)需要接收回調消息,或者希望將同一類型的事件通知發送到多個不同的服務器地址進行處理,則可以通過API/SDK設置UserData參數來指定不同的回調地址,通過UserData既支持HTTP回調,也支持輕量消息隊列(原 MNS)回調。本文介紹如何設置多個回調地址來接收視頻點播產生的回調消息。
背景信息
視頻點播提供了全局的事件通知功能,每個服務地域可以單獨配置事件通知的回調方式和回調地址,但每個服務地域下僅能配置一種回調方式和一個回調地址。由于部分用戶有對多環境區分的訴求,視頻點播提供UserData參數,通過參數透傳,可以讓用戶自定義參數傳遞,通過在UserData參數中指定回調地址從而讓用戶能使用不同的回調地址來接收回調消息。
設置點播全局事件通知
使用限制
如果需要使用輕量消息隊列(原 MNS)回調,則需授權視頻點播服務VOD訪問輕量消息隊列(原 MNS),可訪問云資源訪問授權頁面進行授權。
使用說明
視頻點播提供了針對全局的事件通知功能,支持HTTP回調和輕量消息隊列(原 MNS)回調兩種方式。視頻點播支持多個服務地域,每個服務地域下僅支持設置一種回調方式和一個回調地址,當在視頻點播服務中執行上傳媒資文件(音/視頻或圖片)、發起媒體處理(轉碼、審核等)等操作觸發相應回調事件時,視頻點播會根據服務地域配置的回調方式和回調地址及時通知。
配置方法
全局的事件通知支持通過點播控制臺和API/SDK方式設置,詳細的操作步驟及使用限制等信息,請參見HTTP回調和MNS回調。
上傳時在UserData中指定回調地址
使用限制
使用說明
通過視頻點播的服務端SDK或上傳SDK上傳媒資文件到視頻點播中時,支持在UserData中設置回調地址。此回調地址會和媒資源文件進行綁定,之后對此媒資進行轉碼、審核等媒體處理時,產生的回調事件都會回調到此回調地址上,而回調哪些類型的事件則以在全局設置的回調事件類型為準。如果將此媒資源文件刪除,則后續的事件回調會使用全局設置的回調地址。
相關API
使用服務端SDK或上傳SDK上傳的詳細操作,請參見服務端SDK和上傳SDK。
支持設置UserData參數的上傳相關API如下:
媒體處理時在UserData中指定回調地址
使用限制
使用說明
在視頻點播中,通過API/SDK方式對媒資主動發起轉碼、截圖、審核、剪輯等媒體處理時,支持在UserData中設置回調地址。
媒體處理時在UserData設置的回調地址只對單次發起事件生效;若此時不設置回調地址,則優先按上傳時在UserData中設置的回調地址生效,其次按在全局配置的回調地址生效。
相關API
支持設置UserData參數的媒體處理相關API如下:
UserData參數示例
UserData參數結構的定義及詳細介紹,請參見UserData。結構示例如下:
{
"Extend":{
"width":1280,
"id":"028a8e56b*****1ebf6bb7afc74",
"height":720
},
"AccelerateConfig":{
"Type":"oss",
"Domain":"https://oss-accelerate.aliyuncs.com"
},
"MessageCallback":{
"CallbackURL":"https://xxxxx.com/2016-08-15/proxy/httpcallback/testcallback/",
"CallbackType":"http"
}
}
構建UserData的示例代碼如下:
public static String buildUserData() {
JSONObject userData = new JSONObject();
//消息回調設置
JSONObject messageCallback = new JSONObject();
messageCallback.put("CallbackType", "http");
messageCallback.put("CallbackURL", "https://xxxxx.com/2016-08-15/proxy/httpcallback/testcallback/");
userData.put("MessageCallback", messageCallback);
//透傳字段(可以透傳用戶自定義參數)
JSONObject extend = new JSONObject();
extend.put("id", "028a8e56b*****1ebf6bb7afc74");
extend.put("width", 1280);
extend.put("height", 720);
userData.put("Extend", extend);
//上傳加速設置 (上傳時需要使用加速服務才設置)(按需設置,需單獨申請開通)
JSONObject accelerateConfig = new JSONObject();
accelerateConfig.put("Type", "oss");
accelerateConfig.put("Domain", "https://oss-accelerate.aliyuncs.com");
userData.put("AccelerateConfig", accelerateConfig);
return userData.toJSONString();
}