腾讯云点播上传视频(乞丐版)

前端

  • 前端使用的vue3
  • 需要安装 vod-js-sdk-v6
<script setup>
import TcVod from "vod-js-sdk-v6";

const inputChange = (e) => {
  const tcVod = new TcVod({
    getSignature: getSignature, // 获取上传签名的函数
  });
  const vUploader = tcVod.upload({
    // 腾讯云-初始化上传功能
    mediaFile: e.target.files[0],
  });

  vUploader.done().then((res) => {
    // 上传完成回调
    console.log(res);
  });
};

// 获取签名  这里的签名请求是由后端提供的,只需要拿到后端给的签名请求即可
const getVodSignature = () => {
  const url = "http://localhost:3000/api/video/getvod";
  return fetch(url)
    .then((response) => response.json())
    .then((data) => data);
};
//必须以函数的形式返回  sdk参数限制
const getSignature = async () => {
  const data = await getVodSignature();
  return data;
};
</script>

<template>
  <input type="file" @change="inputChange" />
</template>

<style scoped></style>

后端 返回签名

  • 使用nodejs express框架
  • querystringcryptonode自带的模块,无需安装
const querystring = require("querystring");
const crypto = require("crypto");
exports.getvod = async (req, res) => {
    // 腾讯云生成签名文档 https://cloud.tencent.com/document/product/266/10638

    const querystring = require("querystring");
    const crypto = require('crypto');
    // 确定 app 的云 API 密钥
    const secret_id = "这里填secret_id";
    const secret_key = "这里填secret_key";
    // 确定签名的当前时间和失效时间
    const current = parseInt((new Date()).getTime() / 1000)
    const expired = current + 86400;  // 签名有效期:1天
    // 向参数列表填入参数
    const arg_list = {
        secretId: secret_id,
        currentTimeStamp: current,
        expireTime: expired,
        random: Math.round(Math.random() * Math.pow(2, 32))
    }
    // 计算签名
    const orignal = querystring.stringify(arg_list);
    const orignal_buffer = new Buffer(orignal, "utf8");
    const hmac = crypto.createHmac("sha1", secret_key);
    const hmac_buffer = hmac.update(orignal_buffer).digest();
    const signature = Buffer.concat([hmac_buffer, orignal_buffer]).toString("base64");
    console.log(signature);
    res.json(signature)
}

点击上传

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值