腾讯云 上传视频_云点播系统源码

腾讯云 上传视频_云点播系统源码 web利用腾讯云点播上传视频到云服务器第一步导入<scriptsrc="//imgcache.qq.com/open/qcloud/js/vod/sdk/ugcUploader.js"></script>第二步在服务端设置秘钥,我用的是javaee编写一个Signature类 所需jar包http://download.csdn.net/down…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

 

web利用腾讯云点播上传视频到云服务器

第一步导入

<script src="//imgcache.qq.com/open/qcloud/js/vod/sdk/ugcUploader.js"></script>

Jetbrains全家桶1年46,售后保障稳定

第二步在服务端设置秘钥,我用的是javaee 编写一个Signature类 

所需jar包http://download.csdn.net/download/sinat_36596988/10195891

import javax.crypto.Mac;

import javax.crypto.spec.SecretKeySpec;
import Decoder.BASE64Encoder;


public class Signature {
private String secretId;
private String secretKey;
private long currentTime;
private int random;
private int signValidDuration;


private static final String HMAC_ALGORITHM = "HmacSHA1";
private static final String CONTENT_CHARSET = "UTF-8";


public static byte[] byteMerger(byte[] byte1, byte[] byte2) {
byte[] byte3 = new byte[byte1.length + byte2.length];
System.arraycopy(byte1, 0, byte3, 0, byte1.length);
System.arraycopy(byte2, 0, byte3, byte1.length, byte2.length);
return byte3;
}
public String getUploadSignature() throws Exception {
String strSign = "";
String contextStr = "";


long endTime = (currentTime + signValidDuration);
contextStr += "secretId=" + java.net.URLEncoder.encode(secretId, "utf8");
contextStr += "¤tTimeStamp=" + currentTime;
contextStr += "&expireTime=" + endTime;
contextStr += "&random=" + random;
try {
Mac mac = Mac.getInstance(HMAC_ALGORITHM);
SecretKeySpec secretKey = new SecretKeySpec(this.secretKey.getBytes(CONTENT_CHARSET), mac.getAlgorithm());
mac.init(secretKey);
byte[] hash = mac.doFinal(contextStr.getBytes(CONTENT_CHARSET));
byte[] sigBuf = byteMerger(hash, contextStr.getBytes("utf8"));
strSign = new String(new BASE64Encoder().encode(sigBuf).getBytes());
strSign = strSign.replace(" ", "").replace("\n", "").replace("\r", "");
} catch (Exception e) {
throw e;
}
return strSign;
}


public void setSecretId(String secretId) {
this.secretId = secretId;
}


public void setSecretKey(String secretKey) {
this.secretKey = secretKey;
}


public void setCurrentTime(long currentTime) {
this.currentTime = currentTime;
}


public void setRandom(int random) {
this.random = random;
}


public void setSignValidDuration(int signValidDuration) {
this.signValidDuration = signValidDuration;
}
}
//通过shangchuan.do方法得到秘钥
//APPID APPKEY 进入腾讯云控制台获取https://console.cloud.tencent.com/cam/capi
@RequestMapping("shangchuan.do")
	@ResponseBody
	public String shangchuan(Model model){
		Signature sign = new Signature();
		sign.setSecretId("你的APPID");
		sign.setSecretKey("你的APPKEY");
		sign.setCurrentTime(System.currentTimeMillis() / 1000);
		sign.setRandom(new Random().nextInt(java.lang.Integer.MAX_VALUE));
		sign.setSignValidDuration(3600 * 24 * 2);


		try {
			String signature = sign.getUploadSignature();
			//System.out.println("signature : " + signature);
			return signature;
		} catch (Exception e) {			
			e.printStackTrace();
			return "获取签名失败";
		}
	}

 

 

 

 

 

第三步通过ajax方法得到秘钥并且上传
<html> <head> <title>My JSP 'shang.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <script src="//imgcache.qq.com/open/qcloud/js/vod/sdk/ugcUploader.js"></script> <script src="js/jquery.min.js"></script> </head> <body> <form id="form1"> <input id="uploadVideoNow-file" type="file" /> </form> </body> </html> <script> var getSignature = function(callback) { $.ajax({ url : "shangchuan.do", //服务器获取客户端上传签名的URL type : "POST", success : function(result) { //result.returnData.signature为获取到的签名 callback(result); //callback(result.returnData.signature); } }); }; $('#uploadVideoNow-file').on('change', function(e) { var videoFile = this.files[0]; var resultMsg = qcVideo.ugcUploader.start({ videoFile : videoFile, getSignature : getSignature, allowAudio : 1, isTranscode: 1, success : function(result) { alert("上传成功"); }, error : function(result) { alert("上传失败"); }, progress : function(result) { alert("上传进度:" + result.curr); }, finish : function(result) { alert("上传完成"); } }); }); </script>

具体事件https://cloud.tencent.com/document/product/266/9239 

然后登录腾讯云控制台的点播功能查看上传的视频 (需要转码成功后(会自动转码,需要一定时间))

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/222750.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java的定时器用法

    java的定时器用法

    2021年12月4日
    43
  • SpringMVC面试题大总结「建议收藏」

    SpringMVC面试题大总结「建议收藏」1、什么是SpringMVC?简单介绍下你对springMVC的理解?2、SpringMVC的流程?3、Springmvc的优点:4、SpringMVC怎么样设定重定向和转发的?5、SpringMVC常用的注解有哪些?6、SpingMvc中的控制器的注解一般用哪个?有没有别的注解可以替代?7、springMVC和struts2的区别有哪些?8、如何解决POST请求中文乱码问题,GET的又如何处理呢?9、SpringMvc里面拦截器是怎么写的:10、上传图片?11、SpringMvc怎么和AJA

    2022年6月19日
    20
  • 极速pdf文件打印时此计算机未连接到网络,PDF文件不能打印的五种解决方案[通俗易懂]

    极速pdf文件打印时此计算机未连接到网络,PDF文件不能打印的五种解决方案[通俗易懂]原标题:PDF文件不能打印的五种解决方案有时我们会发现有些PDF文档虽然能够正常打开,点击打印缺没有反应,是打印机坏了吗?当然不是,PDF不能打印90%是被加密,想要正常重新打印其实很简单。方式一:用老版PDF阅读器不常用也是比较难实现一种解决方法,PDF防打印只是设置了个标志位,大多数PDF软件都遵循这个标准,但用某些老版本的PDF阅读器,就会发现它不支持“禁止打印”“禁止复制”的…

    2022年5月25日
    90
  • FileStream 总结[通俗易懂]

    FileStream 总结[通俗易懂]FileStream如何去理解FileStream?通过前3章的学习相信大家对于Stream已经有一定的了解,但是又如何去理解FileStream呢?http://tudou.fzl1314.com 请看下图   我们磁盘的中任何文件都是通过2进制组成,最为直观的便是记事本了,当我们新建一个记事本时,它的大小是0KB,我们每次输入一个数字或字母时文件便会自动增大4kb,可…

    2022年7月12日
    19
  • springcloud eruka刷新时间配置实战「建议收藏」

    springcloud eruka刷新时间配置实战「建议收藏」由于在使用springclouderuka时,服务注册和发现,默认配置往往不能满足及时性的要求,搜集整理了一篇配置。请多多指教server.port=7001spring.application.name=eureka-servereureka.client.serviceUrl.defaultZone=http://localhost:7002/eureka/eureka.client.registerWithEureka=trueeureka.client.fetchRegistry=t

    2022年8月21日
    8
  • docker(8)Dockerfile指令介绍「建议收藏」

    docker(8)Dockerfile指令介绍「建议收藏」前言Dockerfile是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。Dockerfile简介Dockerfile是用来构建Docker镜像的构建文件,是由一系列

    2022年7月30日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号