You need to enable JavaScript to run this app.
导航

小程序上传 SDK(历史版本)

最近更新时间2023.10.27 16:27:03

首次发布时间2021.06.15 15:20:49

本文为您介绍小程序版本上传 SDK。

适用版本

此文档适用于 TTSDK 1.x.x 版本。如果您使用的是 TTSDK 2.0.0 及之后的版本,请查看小程序上传 SDK

马上开始

引入 SDK

  • 方式1:下载小程序 SDK,并导入小程序工程,下载地址
  • 方式2:npm 安装。

npm install tt-uploader-miniprogram@1.0.1

初始化上传配置

import TTUploader from './lib/tt-uploader-miniprogram.js';

let uploader = new TTUploader({

    // 必填,视频上传相关配置

    videoConfig: {

         // 必填,申请的视频空间

         spaceName: 'your spacename'

    }

});

注意

小程序上传不能超过 20MB。

获取上传签名

上传前需要从服务端获取上传 sts2 签名,签名算法服务端接入,接入方法请参考:服务端SDK>生成上传凭证>生成临时上传密钥

说明

由于签名计算放在前端会暴露 AccessKey 和 SecretKey,我们把签名计算过程放在后端实现(利用签名SDK可以生成临时的 AK、SK等 ),前端通过 http 请求向后端获取签名结果,正式部署时请在后端加一层自己网站本身的权限检验。

添加域名白名单

把网关地址和上传地址添加到小程序的访问白名单中。

字段名内容
request 域名https://vod.volcengineapi.com

uploadFile 域名

新增域名:
https://tob-upload-x.volcvod.com
https://tob-upload-y.volcvod.com
历史域名:
https://tos-lf-x.snssdk.com
https://tos-hl-x.snssdk.com
https://tos-nc2-slb2.bytecdn.cn
https://tos-nc2-slb1.bytecdn.cn

开始上传

uploader.start({

  // 必填,把 chooseVideo 回调的参数(filePath)传进来

  path: res.tempFilePath,

  // 必填,把 chooseVideo 回调的参数(size)传进来

  size: res.size,

  // 必填,指定上传类型为视频

  type: 'video',

  // 必填,从服务端拿到的token,token为一个对象类型,见下方说明

  fileName:'demo'

  // 选填,文件路径,文件在点播存储中的存储位置。最大不超过 2048 字节。您可根据业务需求自定义文件路径。

  fileExtension:'.mp4'

  // 选填,文件后缀,点播存储中文件的类型。

  storageClass: 1

  // 选填,存储类型。默认为 1。支持的取值:1:标准存储;2:归档存储。
  
  stsToken: token,

  // 上传成功回调

  success: function(data) {

    console.log('upload success');

    console.log(data);

  },

  // 上传失败回调

  fail: function(data) {

    console.log('upload fail');

    console.log(data);

  },

  // 上传进度回调

  progress: function(data) {

    console.log('progress: ', data);

  }

});

初始化配置

通用配置

配置属性可在实例化时传入,代码示例如下所示。

const ttUploader = new TTUploader({

    userId: "xxx",

    appId: xxx,

    videoConfig: {

        spaceName: 'your spacename',

    }

});

各个配置及其对应作用如下表所示。

参数类型是否必选描述
regionString上传地区。默认值为 cn-north-1。
videoConfigObject视频上传专用配置。默认值为 null。

视频专用配置

代码示例如下所示。

videoConfig: {

    spaceName: "xxx"

}
参数类型是否必选描述
spaceNameString视频空间名。默认值为 null。

回调

success 回调

参数类型描述
VidString视频 id

progress 回调

参数类型描述
progressNumber上传进度百分比
totalBytesSentNumber已经上传的数据长度,单位 Bytes
totalBytesExpectedToSendNumber预期需要上传的数据总长度,单位 Bytes

error 回调

参数类型描述
messageString错误描述
stageString错误阶段
resObject错误响应

错误码对照表

错误码说明
100006请求过期或请求的签名时间来自未来,如果仅部分用户出现该问题,可能为系统时间不准导致。
100009请求的 AK 不合法。
100026错误的 STS or STS2,可能是多种错误,例如签名错误、过期等。

功能 list

小程序版本只包含基础的上传功能,无分片上传,暂停等功能。

Demo

import TTUploader from '../utils/tt-uploader-miniprogram.js';

let uploader = new TTUploader({
    // 必填,视频上传相关配置
    videoConfig: {
        // 必填,申请的视频空间
        spaceName: 'your spacename'
    }
});

wx.chooseVideo({
    sourceType: ['album'],
    count: 1, 
    success: (res) => { 
      this.uploaderV5.start({
        path: res.tempFilePath,
        size: res.size,
        type: 'video',
        stsToken: token,
        success: function(data) {
          console.log('upload success');
          console.log(data.Vid);
        },
        fail: function(data) {
          console.log('upload fail');
          console.log(data);
        },
        progress: function(data) {
          console.log('progress: ', data);
        }
     },
     fail: (res) => { 
       console.log('chooseVideo调用失败:', res); 
     } 
});