如果您有多個環境(如開發、測試和生產等環境)需要接收回調訊息,或者希望將同一類型的事件通知發送到多個不同的伺服器位址進行處理,則可以通過API/SDK設定UserData參數來指定不同的回調地址,通過UserData既支援HTTP回調,也支援Simple Message Queue (formerly MNS)回調。本文介紹如何設定多個回調地址來接收ApsaraVideo for VOD產生的回調訊息。
背景資訊
ApsaraVideo for VOD提供了全域的事件通知功能,每個服務地區可以單獨配置事件通知的回調方式和回調地址,但每個服務地區下僅能配置一種回調方式和一個回調地址。由於部分使用者有對多環境區分的訴求,ApsaraVideo for VOD提供UserData參數,通過參數透傳,可以讓使用者自訂參數傳遞,通過在UserData參數中指定回調地址從而讓使用者能使用不同的回調地址來接收回調訊息。
設定點播全域事件通知
使用限制
如果需要使用Simple Message Queue (formerly MNS)回調,則需授權ApsaraVideo for VOD服務VOD訪問Simple Message Queue (formerly MNS),可訪問雲資源訪問授權頁面進行授權。
使用說明
ApsaraVideo for VOD提供了針對全域的事件通知功能,支援HTTP回調和Simple Message Queue (formerly MNS)回調兩種方式。ApsaraVideo for VOD支援多個服務地區,每個服務地區下僅支援設定一種回調方式和一個回調地址,當在ApsaraVideo for VOD服務中執行上傳媒資檔案(音/視頻或圖片)、發起ApsaraVideo for Media Processing(轉碼、審核等)等操作觸發相應回調事件時,ApsaraVideo for VOD會根據服務地區配置的回調方式和回調地址及時通知。
配置方法
全域的事件通知支援通過點播控制台和API/SDK方式設定,詳細的操作步驟及使用限制等資訊,請參見HTTP回調和輕量訊息佇列(原MNS)回調。
上傳時在UserData中指定回調地址
使用限制
僅支援通過API/SDK方式設定UserData參數,點播控制台暫不支援。
必須先開啟ApsaraVideo for VOD全域的事件通知,並配置相應的回調事件類型,在UserData中設定的回調才會生效。
使用說明
通過ApsaraVideo for VOD的服務端SDK或上傳SDK上傳媒資檔案到ApsaraVideo for VOD中時,支援在UserData中設定回調地址。此回調地址會和媒資源檔進行綁定,之後對此媒資進行轉碼、審核等ApsaraVideo for Media Processing時,產生的回調事件都會回調到此回調地址上,而回調哪些類型的事件則以在全域設定的回調事件類型為準。如果將此媒資源檔刪除,則後續的事件回調會使用全域設定的回調地址。
相關API
使用服務端SDK或上傳SDK上傳的詳細操作,請參見服務端SDK和上傳SDK。
支援設定UserData參數的上傳相關API如下:
ApsaraVideo for Media Processing時在UserData中指定回調地址
使用限制
僅支援通過API/SDK方式設定UserData參數,點播控制台暫不支援。
必須先開啟ApsaraVideo for VOD全域的事件通知後,並配置相應的回調事件類型,在UserData中設定的回調才會生效。
使用說明
在ApsaraVideo for VOD中,通過API/SDK方式對媒資主動發起轉碼、截圖、審核、剪輯等ApsaraVideo for Media Processing時,支援在UserData中設定回調地址。
ApsaraVideo for Media Processing時在UserData設定的回調地址只對單次發起事件生效;若此時不設定回調地址,則優先按上傳時在UserData中設定的回調地址生效,其次按在全域配置的回調地址生效。
相關API
支援設定UserData參數的ApsaraVideo for Media Processing相關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();
}