阿里云视频上传

522 阅读2分钟

上传方式:上传地址和凭证方式

  • 客户端向AppServer发送请求,AppServer通过OpenAPI向阿里云视频点播服务发送CreateUploadVideo请求。请求成功将返回上传地址、上传凭证以及VideoId,AppServer将结果返回给客户端

操作步骤

  1. 在页面引入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>
  1. 初始化上传实例
  • 请求获取的上传地址和凭证初始化时无需设置,在上传开始后触发的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();