上传方式:上传地址和凭证方式
- 客户端向AppServer发送请求,AppServer通过OpenAPI向阿里云视频点播服务发送
CreateUploadVideo请求。请求成功将返回上传地址、上传凭证以及VideoId,AppServer将结果返回给客户端
操作步骤
- 在页面引入JavaScript脚本
<!-- IE需要es6-promise -->
<script src="../lib/es6-promise.min.js"></script>
<script src="../lib/aliyun-oss-sdk6.10.0.min.js"></script>
<script src="../aliyun-vod-upload-sdk1.5.2.min.js"></script>
- 初始化上传实例
-
请求获取的上传地址和凭证初始化时无需设置,在上传开始后触发的
onUploadStarted回调中调用setUploadAuthAndAddress(uploadFileInfo, uploadAuth, uploadAddress,videoId)方法进行设置 -
当Token超时,会触发
onUploadTokenExpired回调,需要调用resumeUploadWithAuth(uploadAuth)方法,设置新的上传凭证继续上传
var uploader = new AliyunUpload.Vod({
//userID,必填,只需有值即可。
userId:"122",
//分片大小默认1 MB,不能小于100 KB
partSize: 1048576,
//并行上传分片个数,默认5
parallel: 5,
//网络原因失败时,重新上传次数,默认为3
retryCount: 3,
//网络原因失败时,重新上传间隔时间,默认为2秒
retryDuration: 2,
//是否上报上传日志到视频点播,默认为true
enableUploadProgress: true,
//开始上传
'onUploadstarted': function (uploadInfo) {
log("onUploadStarted:" + uploadInfo.file.name + ", endpoint:" + uploadInfo.endpoint + ", bucket:" + uploadInfo.bucket + ", object:" + uploadInfo.object);
//上传方式1,需要根据uploadInfo.videoId是否有值,调用视频点播的不同接口获取uploadauth和uploadAddress,如果videoId有值,调用刷新视频上传凭证接口,否则调用创建视频上传凭证接口
if (uploadInfo.videoId) {
//如果uploadInfo.videoId存在,调用刷新视频上传凭证接口
}
else{
//如果uploadInfo.videoId不存在,调用获取视频上传地址和凭证接口
//从视频点播服务获取的uploadAuth、uploadAddress和videoId,设置到SDK里
uploader.setUploadAuthAndAddress(uploadInfo, uploadAuth, uploadAddress,videoId);
}
},
//文件上传成功
'onUploadSucceed': function (uploadInfo) {
log("onUploadSucceed: " + uploadInfo.file.name + ", endpoint:" + uploadInfo.endpoint + ", bucket:" + uploadInfo.bucket + ", object:" + uploadInfo.object);
},
//文件上传失败
'onUploadFailed': function (uploadInfo, code, message) {
log("onUploadFailed: file:" + uploadInfo.file.name + ",code:" + code + ", message:" + message);
},
//文件上传进度,单位:字节
'onUploadProgress': function (uploadInfo, totalSize, loadedPercent) {
log("onUploadProgress:file:" + uploadInfo.file.name + ", fileSize:" + totalSize + ", percent:" + Math.ceil(loadedPercent * 100) + "%");
},
//上传凭证超时
'onUploadTokenExpired': function (uploadInfo) {
console.log("onUploadTokenExpired");
//实现时,根据uploadInfo.videoId调用刷新视频上传凭证接口重新获取UploadAuth
//从点播服务刷新的uploadAuth,设置到SDK里
uploader.resumeUploadWithAuth(uploadAuth);
},
//全部文件上传结束
'onUploadEnd':function(uploadInfo){
console.log("onUploadEnd: uploaded all the files");
}
});
3.上传操作方式
- 添加上传文件
uploader.addFile(file);
- 开始上传
uploader.startUpload();
- 停止上传
uploader.stopUpload();
- 删除上传文件 (index对应listFiles接口返回列表中元素的索引)
uploader.deleteFile(index);
- 获取上传文件列表
uploader.listFiles();