通知管理
更新时间:2022-09-29
概述
本文将向您介绍通知管理的相关操作,包括新建通知、编辑通知、删除通知。
新建通知
创建队列时,用户可以选择配置消息通知,以便随时了解任务状态。用户可以选择不通知,也可以选择消息通知。如果给队列设置了消息通知,那么该队列下的任务结束时会自动将任务状态回调给通知里设置的地址。
消息通知采用HTTP POST推送的形式。
HTTP POST消息格式
POST /notexist HTTP/1.1
host: multimedia.bce-testinternal.baidu.com
accept: _/_
content-type: application/json
content-length: 558
{
"messageBody": "{\"jobId\":\"job-nitg7mbbcgisy26a\",\"pipelineName\":\"yourpipeline\",\"jobStatus\":\"SUCCESS\",\"createTime\":\"2022-09-28T03:27:09Z\",\"startTime\":\"2022-09-28T03:27:09Z\",\"endTime\":\"2022-09-28T03:27:19Z\",\"source\":{\"clips\":[{\"bucket\":\"yourbucket\",\"sourceKey\":\"test.mp4\"}]},\"target\":{\"targetBucket\":\"yourtargetbucekt\",\"targetKey\":\"clbktest.mp4\",\"presetName\":\"presetname\",\"adaptiveStream\":false},\"output\":{\"video\":{\"durationInSeconds\":15,\"sizeInKiloByte\":585.416992,\"widthInPixel\":544,\"heightInPixel\":308,\"frameRate\":30,\"mp4MoovSize\":2664},\"audio\":{\"sampleRateInHz\":22050,\"channels\":2},\"bitRateInKBps\":\"312.22\"}}",
"messageId": "720b0024-6faf-47ba-91e8-a575665164b7",
"notification": "notificationname",
"server": "media.bj.baidubce.com",
"subscriptionName": "",
"version": "",
"signature": ""
}
说明:用户只需要提取messageBody的内容进行解析。
如果通知采用了SIGN鉴权模式,会在header中增加Notification-Auth-Expire、Notification-Auth-User和Notification-Auth-Token用于验证。
用户接收到回调后可以使用SHA256-HEX传入自己的token以及"POST;endpoint;content;expireTime;user"生成Notification-Auth-Token,与header中的对比进行验证。
- token和endpoint分别是您在MCP控制台通知管理添加的签名验证token和回调地址;
- content是MCP服务端回调您的回调地址时携带的responseBody内容,您在回调地址服务中直接获取即可,无需额外转换(如json转换可能会打乱key的顺序导致签名失败);
- expireTime和user是对调请求的请求头中的Notification-Auth-Expire、Notification-Auth-User值。
您可以参考如下Java代码示例
public void callbackAndVerify(@RequestBody String object, HttpServletRequest request) {
System.out.println("callbcak data: " + object);
String authExpire = request.getHeader("Notification-Auth-Expire");
System.out.println("Notification-Auth-Expire: " + authExpire);
String authUser = request.getHeader("Notification-Auth-User");
System.out.println("Notification-Auth-User: " + authUser);
String authToken = request.getHeader("Notification-Auth-Token");
System.out.println("Notification-Auth-Token: " + authToken);
String token = "yourSecretToken";
String endPoint = "yourEndpoint";
String encrypString = EncryAndDecryUtils.getHmacSha256Encrypt(token, "POST;" + endPoint + ";" + object + ";" + authExpire + ";" + authUser);
System.out.println("encrypString: " + encrypString);
if (authToken.equals(encrypString)) {
System.out.println("verify pass");
}
}
sha256加密方法:
public static String getHmacSha256Encrypt(String secret, String message) {
String encryptString = "";
try {
Mac mac = Mac.getInstance("HmacSHA256");
SecretKeySpec secretKey = new SecretKeySpec(secret.getBytes(CHARSET_UTF8), "HmacSHA256");
mac.init(secretKey);
byte[] hash = mac.doFinal(message.getBytes(CHARSET_UTF8));
return new String(Hex.encodeHex(hash));
} catch (Exception e) {
e.printStackTrace();
}
return encryptString;
}
操作步骤
- 登录音视频处理 MCP 控制台。
- 在左侧导航栏选择 产品配置->通知管理 ,进入“通知管理”页面。
- 点击新建通知模板,进入“新建通知”页面。
- 填写通知名称、回调地址和回调验证类型,使用签名验证时,需要输入一个Token,使用方法参考通知接口API。
- 填写好相关信息,点击确定,完成创建通知模板操作。
编辑通知
通知配置信息有变时,可以通过编辑通知配置更新通知信息。
操作步骤
- 登录音视频处理 MCP 控制台。
- 在左侧导航栏选择 产品配置->通知管理 ,进入“通知管理”页面。
- 点击操作列中的编辑按钮,进入“编辑通知”页面。
-
除了通知名称不可编辑,其他信息均可编辑。
- 确认好相关信息,点击确定,完成修改通知模板操作。
删除通知
通知配置不使用的情况下,可以删除通知。
注意事项
通知配置一旦删除不能恢复。
操作步骤
- 登录音视频处理 MCP 控制台。
- 在左侧导航栏选择 产品配置->通知管理 ,进入“通知管理”页面。
-
点击操作列中的删除按钮,弹出删除窗口。
- 点击确定,完成删除通知模板操作,一旦删除不能恢复。