云点播web端上传_腾讯云点播视频存储(Web端视频上传)

javascript

技术文章

开发

腾讯云点播视频存储(Web端视频上传)

前言

所谓视频上传,是指开发者或其用户将视频文件上传到点播的视频存储中,以便进行视频处理、分发等。

一、简介

腾讯云点播支持如下几种视频上传方式:

控制台上传:在点播控制台上进行操作,将本地视频上传到云点播,适用于直接管理少量视频的场景,具有方便快捷、无技术门槛的优点;

服务端上传:开发者将存储在其后台服务器中的视频上传到云点播,适用于自动化、系统化的运营场景;

客户端上传:终端用户将客户端本地视频上传到云点播,适用于 UGC、PGC 等场景,支持如下三端:

本文将介绍第三种视频上传方式: Web客户端上传

所谓客户端视频上传,是指 App 的最终用户将本地视频上传到点播平台。客户端上传的整体流程如下图所示:

二、思路

开通服务

获取云 API 密钥

服务端派发签名

客户端集成

说明: 前2步参照腾讯云官方文档指引自己完成, 本文着重讲解后2步代码实现

三、最终效果

四、代码实现

1、服务端派发签名

首先, 为什么要这一步, 因为, 在客户端上传场景下,客户端是直接将视频文件上传到腾讯云点播,不需要由 App 服务端进行中转。因此,腾讯云点播必须对发起请求的客户端进行鉴权。但由于 SecretKey 的权限过大,App 不应该将此信息泄露到客户端,否则将会造成严重的安全问题。

因此,客户端在发起上传之前,必须要到 App 的签名派发服务申请上传签名,即流程图中的第1步。

2、获取签名代码

获取签名一共只需要两个类: Signature和SignatureController

1)、Signature

package com.cn.pinliang.admin.media.upload;

import sun.misc.BASE64Encoder;

import javax.crypto.Mac;

import javax.crypto.spec.SecretKeySpec;

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 += "&currentTimeStamp=" + currentTime;

contextStr += "&expireTime=" + endTime;

contextStr += "&random=" + random;

try {

Mac mac = Mac.getInstance(HMAC_ALGORITHM);

SecretKeySpec secretKey = new SecretKeySpec(this.secretKey.getBytes(CONTENT_CHARSET

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值