本文为您介绍小程序版本上传 SDK。
此文档适用于 TTSDK 1.x.x 版本。如果您使用的是 TTSDK 2.0.0 及之后的版本,请查看小程序上传 SDK。
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 请求向后端获取签名结果,正式部署时请在后端加一层自己网站本身的权限检验。
把网关地址和上传地址添加到小程序的访问白名单中。
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', } });
各个配置及其对应作用如下表所示。
参数 | 类型 | 是否必选 | 描述 |
---|---|---|---|
region | String | 否 | 上传地区。默认值为 cn-north-1。 |
videoConfig | Object | 是 | 视频上传专用配置。默认值为 null。 |
代码示例如下所示。
videoConfig: { spaceName: "xxx" }
参数 | 类型 | 是否必选 | 描述 |
---|---|---|---|
spaceName | String | 是 | 视频空间名。默认值为 null。 |
参数 | 类型 | 描述 |
---|---|---|
Vid | String | 视频 id |
参数 | 类型 | 描述 |
---|---|---|
progress | Number | 上传进度百分比 |
totalBytesSent | Number | 已经上传的数据长度,单位 Bytes |
totalBytesExpectedToSend | Number | 预期需要上传的数据总长度,单位 Bytes |
参数 | 类型 | 描述 |
---|---|---|
message | String | 错误描述 |
stage | String | 错误阶段 |
res | Object | 错误响应 |
错误码 | 说明 |
---|---|
100006 | 请求过期或请求的签名时间来自未来,如果仅部分用户出现该问题,可能为系统时间不准导致。 |
100009 | 请求的 AK 不合法。 |
100026 | 错误的 STS or STS2,可能是多种错误,例如签名错误、过期等。 |
小程序版本只包含基础的上传功能,无分片上传,暂停等功能。
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); } });