这个是官网文档中给的引入文件,你会发现sdk-vod这个包中没有DecryptKMSDataKeyRequest这个类

<dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-core</artifactId><version>4.6.0</version>
</dependency>
<dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-vod</artifactId><version>2.16.5</version>
</dependency>
<dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.62</version>
</dependency>
<dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-kms</artifactId><version>2.10.1</version>
</dependency>


搭建解密的demo中又有这个类,如果你用这个代码和上面引入的包,就会发现类一直都找不到

import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.http.ProtocolType;
import com.aliyuncs.vod.model.v20170321.DecryptKMSDataKeyRequest;
import com.aliyuncs.vod.model.v20170321.DecryptKMSDataKeyResponse;
import com.aliyuncs.profile.DefaultProfile;
import com.sun.net.httpserver.Headers;
import com.sun.net.httpserver.HttpExchange;
import com.sun.net.httpserver.HttpHandler;
import com.sun.net.httpserver.HttpServer;
import com.sun.net.httpserver.spi.HttpServerProvider;
import org.apache.commons.codec.binary.Base64;
import java.io.IOException;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.InetSocketAddress;
import java.net.URI;import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class HlsDecryptServer {private static DefaultAcsClient client;static {//KMS的区域,必须与视频对应区域String region = "";//访问KMS的授权AccessKey信息String accessKeyId = "";String accessKeySecret = "";client = new DefaultAcsClient(DefaultProfile.getProfile(region, accessKeyId, accessKeySecret));}/*** 说明:* 1、接收解密请求,获取密文密钥和令牌Token* 2、调用KMS decrypt接口获取明文密钥* 3、将明文密钥base64decode返回*/public class HlsDecryptHandler implements HttpHandler {/*** 处理解密请求* @param httpExchange* @throws IOException*/public void handle(HttpExchange httpExchange) throws IOException {String requestMethod = httpExchange.getRequestMethod();if ("GET".equalsIgnoreCase(requestMethod)) {//校验token的有效性String token = getMtsHlsUriToken(httpExchange);boolean validRe = validateToken(token);if (!validRe) {return;}//从URL中取得密文密钥String ciphertext = getCiphertext(httpExchange);if (null == ciphertext)return;//从KMS中解密出来,并Base64 decodebyte[] key = decrypt(ciphertext);//设置headersetHeader(httpExchange, key);//返回base64decode之后的密钥OutputStream responseBody = httpExchange.getResponseBody();responseBody.write(key);responseBody.close();}}private void setHeader(HttpExchange httpExchange, byte[] key) throws IOException {Headers responseHeaders = httpExchange.getResponseHeaders();responseHeaders.set("Access-Control-Allow-Origin", "*");httpExchange.sendResponseHeaders(HttpURLConnection.HTTP_OK, key.length);}/*** 调用KMS decrypt接口解密,并将明文base64decode* @param ciphertext* @return*/private byte[] decrypt(String ciphertext) {DecryptKMSDataKeyRequest request = new DecryptKMSDataKeyRequest();request.setCipherText(ciphertext);request.setProtocol(ProtocolType.HTTPS);try {DecryptKMSDataKeyResponse response = client.getAcsResponse(request);String plaintext = response.getPlaintext();System.out.println("PlainText: " + plaintext);//注意:需要base64 decodereturn Base64.decodeBase64(plaintext);} catch (ClientException e) {e.printStackTrace();return null;}}/*** 校验令牌有效性* @param token* @return*/private boolean validateToken(String token) {if (null == token || "".equals(token)) {return false;}//TODO 业务方实现令牌有效性校验return true;}/*** 从URL中获取密文密钥参数* @param httpExchange* @return*/private String getCiphertext(HttpExchange httpExchange) {URI uri = httpExchange.getRequestURI();String queryString = uri.getQuery();String pattern = "CipherText=(\\w*)";Pattern r = Pattern.compile(pattern);Matcher m = r.matcher(queryString);if (m.find())return m.group(1);else {System.out.println("Not Found CipherText Param");return null;}}/*** 获取Token参数** @param httpExchange* @return*/private String getMtsHlsUriToken(HttpExchange httpExchange) {URI uri = httpExchange.getRequestURI();String queryString = uri.getQuery();String pattern = "MtsHlsUriToken=(\\w*)";Pattern r = Pattern.compile(pattern);Matcher m = r.matcher(queryString);if (m.find())return m.group(1);else {System.out.println("Not Found MtsHlsUriToken Param");return null;}}}/*** 服务启动** @throws IOException*/private void serviceBootStrap() throws IOException {HttpServerProvider provider = HttpServerProvider.provider();//监听端口可以自定义,能同时接受最多30个请求HttpServer httpserver = provider.createHttpServer(new InetSocketAddress(8099), 30);httpserver.createContext("/", new HlsDecryptHandler());httpserver.start();System.out.println("hls decrypt server started");}public static void main(String[] args) throws IOException {HlsDecryptServer server = new HlsDecryptServer();server.serviceBootStrap();}}


提工单升级一下aliyun-java-sdk-vod的版本,换成2.16.9就可以了

阿里云视频点播解密DecryptKMSDataKeyRequest爬坑相关推荐

  1. laravel中使用阿里云视频点播遇到的坑解决思路

    这两天在研究laravel使用阿里云视频点播播放sdk,遇到各种坑,此处的坑好久没有解决,记录一下 laravel5.4调用阿里云视频点播播放借口报错(1/1) ClientException Ser ...

  2. Spring Boot集成阿里云视频点播服务的过程记录

    阿里云视频点播 效果预览 视频点播 视频点播概述 功能 优势 流程 环境准备 开通视频点播 创建RAM用户并授权 上传SDK 上传流程 下载上传SDK 安装上传SDK 集成Java上传SDK 异常说明 ...

  3. 蚂蚁金服零号云客服遇到爬坑

    蚂蚁金服零号云客服遇到爬坑 一.准备 二.代码 2.1.背景 2.2.依赖 2.3.代码 三.配置回调地址 四.测试 最近接一个sdk,也就是蚂蚁金服零号云客服的一个自定义卡片的功能 一.准备 官方文 ...

  4. 玩转短视频?守护视频安全?AI智能提速?一分钱体验? 阿里云视频点播大招盘点...

    摘要: 前言 随着近几年在线视频市场规模不断扩大,内容不断创新,用户粘性增加,在线视频市场的商业价值不断增长,各垂直行业纷纷引入视频能力,一时之间,视频已经成为了众多移动APP和在线平台沉淀用户的有效 ...

  5. 阿里云视频点播服务的开通和使用

    阿里云视频点播服务的开通和使用 文章目录 阿里云视频点播服务的开通和使用 前言:什么是阿里云视频点播服务? 一.开通阿里云视频点播服务 二.控制台基本操作 三.JAVA JDK操作阿里云视频点播服务 ...

  6. 阿里云视频点播-对接注意点

    阿里云视频点播-对接注意点 ​ 对接接阿里云的视频点播过程有点繁琐,做个记录以便以后查阅 一.分发加速配置-域名管理 ​ 配置成功的前提是自己先要有个主域名,并且成功备案. 1.先配置一个域名 2.配 ...

  7. 阿里云视频点播大招盘点

    前言 随着近几年在线视频市场规模不断扩大,内容不断创新,用户粘性增加,在线视频市场的商业价值不断增长,各垂直行业纷纷引入视频能力,一时之间,视频已经成为了众多移动APP和在线平台沉淀用户的有效方法. ...

  8. 阿里云视频点播技术能力盘点

    随着近几年在线视频市场规模不断扩大,内容不断创新,用户粘性增加,在线视频市场的商业价值不断增长,各垂直行业纷纷引入视频能力,一时之间,视频已经成为了众多移动APP和在线平台沉淀用户的有效方法. 为了让 ...

  9. 阿里云视频点播vod视频无法播放预览的问题

    阿里云视频点播vod视频无法播放预览的问题 本人出现的问题是阿里云的oss对象存储服务器是北京的,而开通的视频点播服务是上海的,视频就无法播放,这个视频点播的地区切换是很方便的. 踩过的坑:我看了蛮多 ...

  10. 玩转短视频?守护视频安全?AI智能提速?一分钱体验? 阿里云视频点播大招盘点

    摘要:  前言 随着近几年在线视频市场规模不断扩大,内容不断创新,用户粘性增加,在线视频市场的商业价值不断增长,各垂直行业纷纷引入视频能力,一时之间,视频已经成为了众多移动APP和在线平台沉淀用户的有 ...

最新文章

  1. java正则 group_Java正则表达式,分组 group()、groupCount()
  2. java json发送文件_关于java:REST API设计在同一请求中将JSON数据和文件发送到api...
  3. R语言match函数对象之间的匹配实战
  4. reactnative 获取定位_react native 获取地理位置的方法示例
  5. DateTime时间格式转换为Unix时间戳格式
  6. IDEA第一个mybatis程序 mybatis增删查改操作 mybatis的map模糊查询
  7. 通讯录排序 (20分)_算法入门篇:简单的排序算法
  8. 一名合格的电子工程师,不能逃避的“梗”
  9. 计算机和公文写作买什么资料,公文写作和计算机应用笔试和复习大纲资料.doc...
  10. 网络基础2-2(传输层,端口,详谈UDP)
  11. 调用门、堆栈切换与调用过程返回
  12. 利用高阶函数map和reduce将字符串转化成浮点数
  13. CCF201512试题
  14. Spring 框架简单介绍
  15. 【Pytorch】Pytorch常见的坑汇总
  16. 关于 myeclipse 里面没有 add hibernate capabilities 问题解决方法
  17. python连接池 commit,连接池请求Python
  18. git删除远程提交记录
  19. vb科学计算机ppt,《计算机级VB教程》PPT课件.ppt
  20. 小公司个人技术成长路线思考

热门文章

  1. qq 客服 php,QQ支持临时会话设置
  2. php 鸟哥 配置文件,鸟哥:让PHP 7达到最高性能的几个Tips
  3. 数字传感器:新兴的应用
  4. 清洗outliers
  5. 病毒制作实践小记:运行关机、蓝屏炸弹、进程关闭、拓展名病毒
  6. win8计算机意外,解决win8.1/win10开机提示“致命错误c0000034”的方案
  7. 织梦如何添html5播放器,织梦ckplayer视频播放器插件的介绍与使用
  8. 大乐斗2服务器维护,腾讯《QQ宠物》、《乐斗Ⅱ》正式停止运营
  9. Elasticsearch系列——(1.1)倒排索引原理
  10. LayerPagerDemo - 双层可拖拽式布局界面