阿里云点播,微信小程序对接阿里云视频点播

简介: 网上也有对于阿里云如何在微信小程序里使用,但是很不全,包括阿里云文档的最佳实践里。话不多说上代码了。upvideo(){ var aliOssParams = util.aliOssParams();//主要是获取上传阿里云的加密策略policy和签名signature;以及上传自己要上传到阿里云的地址,当然还有自己阿里云accessid。

网上也有对于阿里云如何在微信小程序里使用,但是很不全,包括阿里云文档的最佳实践里。
话不多说上代码了。
upvideo(){

     var aliOssParams =  util.aliOssParams();//主要是获取上传阿里云的加密策略policy和签名signature;以及上传自己要上传到阿里云的地址,当然还有自己阿里云accessid。
      //上传视频到阿里云
      var that = this;
      wx.chooseVideo({
         maxDuration: 10,
         success: function (res) {
           var tempFilePath = res.tempFilePath;
           var stringFilePath = String(tempFilePath);
           var indexType = stringFilePath.lastIndexOf('.');
           var type = stringFilePath.substring(indexType);
           var alikey = 'video/'+new Date().getTime() + 
            Math.floor(Math.random() * 1000)+ type ;//随机1000内的数加上时间戳作为你存放在阿里云video目录下名字和类型。
           wx.uploadFile({
             url:aliOssParams.host,
             filePath: tempFilePath,
             name: 'file',
             formData: {
               name: tempFilePath,
               key: alikey,//这个是关键它是定义存放在阿里云那个目录下
               policy:aliOssParams.policy,//上传阿里云的加密策略
               OSSAccessKeyId: aliOssParams.aid,//自己阿里云的aid
               success_action_status: "200",
               signature: aliOssParams.signature,//上传阿里云的签名
             },
             success: function (res) {
              var videoUrl = aliOssParams.host+'/'+alikey;//这就是
         刚上传阿里云后的存放的地址链接,通过它打开你刚上传视频。
              that.videoUrl = videoUrl;
               console.log('that',that,videoUrl);
               wx.showToast({
                 title: "上传成功",
                 icon: 'success',
                 duration: 1000
               })
             },
             fail: function ({ errMsg }) {
               wx.showToast({
                 title: "上传失败",
                 duration: 1000
               })
             },
           })
         }
       })

通过代码大家可以看到最关键的是啥,如何获取加密策略和签名了,当然了,阿里云最佳实践里有demo,但是crypto这个库已经废弃了,它demo给你带过来的crypto,你只能自己去提取了。

 这里是我提为大家提取的crypto函数,直接copy用。

  • View Code
    有了上面的crypto工具函数了,就去看看具体如何生成签名与加密策略吧。

import base64 from "base-64"
import {Crypto} from "./crypto.js"
const util = {

aliOssParams(){
    var aid = "xxxxxxx";//你自己的阿里云的accessid
    var aky="xxxxxxxxxx";//你自己的阿里云的accesskey
    var host = "https://xxxxxxxxx.aliyuncs.com";//你自己的阿里云域名
    var policyText = {
            "expiration": "2022-01-01T12:00:00.000Z",//上传的文件失效日期自己定义
            "conditions": [
            ["content-length-range", 0, 10485760000]//上传的内容大小,自己定义
            ]
    };
    var policy = base64.encode(JSON.stringify(policyText));//生成的加密策略
    var bytes = Crypto.util.HMAC(Crypto.util.SHA1, policy, aky, { asBytes: true }) ;
    var signature = Crypto.util.bytesToBase64(bytes);//生成的签名
    return {
                    policy: policy,
                   signature:signature,
                  aid:aid,
                  host: host
               }
}

}

export {util}
至于如何上传图片,大体如下,请保证以上都已经跑通了,base64记得你上面引到。。

多张图片的上传如此
upMyImg(){
var aliOssParams = util.aliOssParams();
var that = this;
wx.chooseImage({

 count: 9,  //最多可以选择的图片总数
 // sizeType: ['compressed'], // 可以指定是原图还是压缩图,默认二者都有
 sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
 success: function (res) {
   // 返回选定照片的本地文件路径列表,tempFilePath可以作为img标签的src属性显示图片
   var tempFilePaths = res.tempFilePaths;
   //启动上传等待中...
   wx.showToast({
     title: '正在上传...',
     icon: 'loading',
     mask: true,
     duration: 10000
   })
   var uploadImgCount = 0;

   var tempFilePath;
   var stringFilePath = '';
   var alikey = '' ;
   var type='';

   for (var i = 0, h = tempFilePaths.length; i < h; i++) {
        // stringFilePath= String(tempFilePaths[i]);
        // type = stringFilePath.substring(stringFilePath.lastIndexOf('.'));
        alikey = 'imagees/'+new Date().getTime() + Math.floor(Math.random() * 150)+ '.jpg';
        that.srcs.push(tempFilePaths[i]);
        that.setData({srcs: that.srcs});
     wx.uploadFile({
       url: aliOssParams.host,
       filePath: tempFilePaths[i],//上传图片的路径
       name: 'file',
       formData: {
         key: alikey,
         name: tempFilePaths[i],
         policy:aliOssParams.policy,
         OSSAccessKeyId: aliOssParams.aid,
         success_action_status: "200",
         signature: aliOssParams.signature,
       },
       success: function (res) {
         uploadImgCount++;
         console.log('rrrs',res,tempFilePaths[i]);
         // var data = JSON.parse(res.data);
         //服务器返回格式: { "Catalog": "testFolder", "FileName": "1.jpg", "Url": "https://test.com/1.jpg" }
         // console.log('rrr',data);
         console.log('ddd222',res,aliOssParams.host,alikey);
         // var productInfo = that.data.productInfo;
         // if (productInfo.bannerInfo == null) {
         //   productInfo.bannerInfo = [];
         // }
         // productInfo.bannerInfo.push({
         //   "catalog": data.Catalog,
         //   "fileName": data.FileName,
         //   "url": data.Url
         // });
         // that.setData({
         //   productInfo: productInfo
         // });

         //如果是最后一张,则隐藏等待中
         if (uploadImgCount == tempFilePaths.length) {
             // that.srcs.push(tempFilePaths[i]);
             console.log(that.srcs,3222);
           wx.hideToast();
           wx.showToast({
             title: "上传成功",
             icon: 'success',
             duration: 1000
           })
         }
       },
       fail: function (res) {
         wx.hideToast();
         wx.showModal({
           title: '错误提示',
           content: '上传图片失败',
           showCancel: false,
           success: function (res) { }
         })
       }
     });
   }
 }

})

// 上传图片完
}
都是自己亲测,亲坑。。。解决了你的问题,就随手一赞。。

相关文章
|
23天前
|
缓存 Kubernetes 网络协议
阿里云DNS常见问题之在手机上使用阿里的私人dns失败如何解决
阿里云DNS(Domain Name System)服务是一个高可用和可扩展的云端DNS服务,用于将域名转换为IP地址,从而让用户能够通过域名访问云端资源。以下是一些关于阿里云DNS服务的常见问题合集:
|
27天前
|
安全 API 持续交付
要利用阿里云控制API查询您的阿里云资源
【2月更文挑战第33天】要利用阿里云控制API查询您的阿里云资源
18 3
|
29天前
|
存储 安全 对象存储
手把手教你搭建阿里云图床(PicGo+Typora+阿里云OSS),新手小白一看就会
本文详细介绍了怎样帮助新手小白从注册,购买阿里云OSS,到一步一步配置OSS做为图床,和PicGo、Typora软件连接,配置好关联之后,在使用Typora写文章时,如果需要插入图片,只需要将图片复制粘贴到Typora的编辑区域,就会自动通过PicGo上传到指定图床,自动复制外网能访问的URL并展示,简直不要太方便,极大的解决了编辑文章时复制处理图片链接的痛点。
148 2
手把手教你搭建阿里云图床(PicGo+Typora+阿里云OSS),新手小白一看就会
|
1月前
|
弹性计算 前端开发 小程序
微信小程序上传文件至阿里云OSS直传(java后端签名+前端直传)
当前的通用文件上传方式是通过前端上传到服务器,再由服务器转存至对象存储。这种方式在处理小文件时效率尚可,但大文件上传因受限于服务器带宽,速度较慢。例如,一个100MB的文件在5Mbps带宽的阿里云ECS上上传至服务器需160秒。为解决此问题,可以采用后端签名的方式,使微信小程序直接上传文件到阿里云OSS,绕过服务器中转。具体操作包括在JAVA后端引入相关依赖,生成签名,并在微信小程序前端使用这个签名进行文件上传,注意设置正确的请求头和formData参数。这样能提高大文件上传的速度。
|
7月前
|
边缘计算 运维 Kubernetes
阿里云原生容器服务产品体系-阿里云边缘容器服务ACK@Edge介绍
阿里云原生容器服务产品体系-阿里云边缘容器服务ACK@Edge介绍
1017 0
阿里云原生容器服务产品体系-阿里云边缘容器服务ACK@Edge介绍
|
11天前
|
消息中间件 人工智能 监控
|
1月前
|
存储 弹性计算 大数据
阿里2核4G配置云服务器价格多少钱?阿里云2核4G云服务器531元一年怎么样?
随着云计算技术的日益发展,越来越多的企业和个人开始选择云服务器来满足其数据存储和处理需求。在众多的云服务提供商中,阿里云以其卓越的性能和稳定的服务赢得了广大用户的青睐。 近期,阿里云推出了一系列爆款特惠活动,其中一款2核4G通用算力型u1实例云服务器ECS备受关注。这款云服务器不仅拥有强大的计算能力,还提供了稳定的运行环境,非常适合对性能和稳定性有一定要求的用户。
|
1月前
|
存储 弹性计算 人工智能
阿里服务器租用多少钱一年?阿里云服务器租用收费标准价格表(2024年更新)
阿里服务器租用多少钱一年?阿里云服务器租用收费标准价格表(2024年更新)
|
2月前
|
弹性计算 大数据 测试技术
阿里服务器租用多少钱一年_阿里云服务器租用收费标准价格表(2024年更新)
阿里服务器租用多少钱一年?2024年阿里云服务器租用费用已更新。阿里云服务器分为轻量应用服务器和云服务器ECS,轻量适合个人开发者使用,搭建轻量级的网站、测试环境使用,专业级如大数据、科学计算、高并发网站等需要使用云服务器ECS。阿里云服务器ECS经济型e实例2核2G、3M固定带宽99元一年、ECS u1实例2核4G、5M固定带宽、80G ESSD Entry盘优惠价格199元一年,轻量应用服务器2核2G3M带宽轻量服务器一年61元、2核4G4M带宽轻量服务器一年165元12个月、2核4G服务器30元3个月,幻兽帕鲁4核16G和8核32G服务器配置。
149 4
|
2月前
|
弹性计算 大数据 测试技术
阿里服务器租用多少钱一年?阿里云服务器租用价格表(最新CPU/内存/带宽/磁盘收费标准)
阿里服务器租用多少钱一年?阿里云服务器租用价格表(最新CPU/内存/带宽/磁盘收费标准)。阿里云服务器的租用费用因实例类型、地域、配置等因素而有所不同,价格范围可以从几百元到几千元不等。2024年阿里云服务器租用费用价格表更新,云服务器ECS经济型e实例2核2G、3M固定带宽99元一年、ECS u1实例2核4G、5M固定带宽、80G ESSD Entry盘优惠价格199元一年,轻量应用服务器2核2G3M带宽轻量服务器一年61元、2核4G4M带宽轻量服务器一年165元12个月、2核4G服务器30元3个月,幻兽帕鲁4核16G和8核32G服务器配置,云服务器ECS可以选择经济型e实例、通用算力u1实

热门文章

最新文章