优学院文件服务obs,上传,下载等
javascript 依赖华为obs以及七牛云sdk
- npm i ulearning-obs
支持全局引入 amd cmd es6 dist目录输出两个版本的工具类 obs-huawei.js obs-qiniu.js分别对应华为云和七牛云
const Obs = require('ulearning-obs')
//or
import Obs from 'ulearning-obs'
//or
<script src="node_modules/ulearning-obs/dist/obs-huawei.js"></script>
- new Obs({fileTypes?: Array, mode?: string, maxSize?: number, exts?: string, multiple?: Boolean,uptokenHost,m3u8?: Boolean})
- fileTypes Array 文件类型 document image video audio zip flash srt 优学院对应文件类型格式,不传该字段默认支持全部文件类型
- maxSize 文件最大限制 单位mb 默认1024
- exts 扩展名doc,doc,xls等 多个用','隔开 覆盖type对应的扩展名
- multiple 文件选择是否支持多选 true or false
- errorCode 50001 文件类型不支持 50002 文件大小不符合 50070 七牛云token获取失败 50071七牛上传时失败 50080 华为token获取失败 50081华为上传时失败 50082 文件编码无法解析
- uptokenHost 获取上传token的接口host 决定传到哪个服务器 cn app net ex:https://courseapi.tongshike.cn
- m3u8 视频文件是否需要转码成m3u8格式(默认转码成MP4格式,如果此参数为true 会额外转码一份m3u8格式文件,回调的file文件会增加m3u8Key属性,值为转码后的m3u8文件路径)
- authorization 上传接口权限校验(优学院账号)
- obsSign 非优学院账号使用签名校验权限
- obsHost 上传后文件的访问域名 七牛云上传的时候需要传此参数 华为云上传不需要 ex:https://leicloud.ulearning.cn
let obs = new Obs({
maxSize: 10,
fileTypes: [],
multiple: true
})
- obs.initUpBtn(dom: dom) 给目标dom绑定文件选择上传
obs.initUpBtn(document.getElementById('uploaderBtn'))
- 监听函数 obs实例可绑定用于文件上传的监听事件
- onBeforeUpload
- onError
- onSuccess
- onProgress
obs.onBeforeUpload = function (file) {
console.log('onBeforeUpload----',file)
file.onProgress = function (percent) {
console.log('progress----file-----' + percent)
}
file.onSuccess = function () {
console.log('success----file-----')
}
file.onError = function (err) {
console.log('error----file-----' + err)
}
}
obs.onError = function (file,err) {
console.log('error',file,err)
}
obs.onSuccess = function (file) {
console.log('success----',file)
}
obs.onProgress = function (file,percent) {
console.log('progress----',file, percent)
}
- obs.startUpload(file:File or Blob) 上传文件函数 支持File,Blob file(or blob)对象需要指定ext参数用于确定文件类型
file.ext = '.png'
obs.startUpload(file) or
obs.startUpload(blob)
- obs.cancelUpload(file:Object) 取消上传
obs.cancelUpload(uploader.files[0])
- obs.download(path,name) 下载文件,path:传入文件路径的全路径 name:下载后的文件名称 ex:abc.png 不传默认用key作为名字
obs.download('https://tongshike.obs.cn-north-4.myhuaweicloud.com/resources/web/16371358301228191.png')
增加音频默认转成流程(暂未开启)
转码源文件path路径处理(去除域名)
增加说转码失败code 50082
默认文件改为obs-qiniu.js download参数拼接优化
去除eval方法
华为云上传文件访问域名从后台直接获取domain
上传文件音视频增加duration参数
startUpload支持duration
音视频duration,从华为mpc获取
七牛file.key赋值错误修复
处理host多余斜杠 mp4转码失败正常走成功回调 提供新的qiniuUploadByToken方法,用于业务端自行获取token再进行上传
m3u8key以及转code=2修改
重新实现了download方法
without-polyfill
优化时长获取
时长获取回调bug修复
下载修改
下载方法重构
中文名下载bug
文件下载mp4格式
新增obs-nxu.js,宁夏大学本地部署定制
修改qiniu版本,自定义file key
增加obsSign参数,非优学院账号使用此签名参数获取上传下载配置
mp3增加转码(后台根据编码格式判断是否需要转码)
增加getDownloadUrl(path,name,callback)方法,和download类似,获取url是异步的需多传入一个回调函数
新增obs-cdp.js,宁夏大学本地部署定制
新增文档类型pps