阿里云视频点播

  • 参考示例:https://help.aliyun.com/document_detail/53406.html
  • 注意点:有一个依赖包是下载不来的,我们需要手动下载并解压(其他包也是一样的)
  • 地址:https://help.aliyun.com/document_detail/51992.htm?spm=a2c4g.11186623.0.0.cd125b78wCpMw2#topic-1959787-table-jql-3ej-tg4
  • 找到所属语言的Demo: V1.4.14 SDK及Demo源码
  • 下载之后进行解压,在解压的目录中找到lib目录,找到你下载不来的jar包: aliyun-java-vod-upload.jar
  • 复制该jar包到你的maven的lib目录下
  • 再到开发工具中 File->Project Structure->Modules->dependencies-> + ->JARs or directories,找到你添加maven下lib目录下的jar包, Apply->OK
  • 在开发工具中刷新下maven,最后就可以了(这时可以不用再写upload的依赖了)
  • 上传测试(本地文件传输,注意点不能漏)
// 本地上传文件
@Test
public void uploadLocalFile() {
    // 第一二个参数是accessId和accessSecret,第三个参数是上传之后文件的名字,第四个参数是文件路径名称
    String accessId = "your accessId";
    String accessSecret = "your accessSecret";
    String title = "first video";
    String fileName = "绝对路径\\6 - What If I Want to Move Faster.mp4";
    UploadVideoRequest request = new UploadVideoRequest(accessId, accessSecret, title, fileName);
    /* 可指定分片上传时每个分片的大小,默认为2M字节 */
    request.setPartSize(2 * 1024 * 1024L);
    /* 可指定分片上传时的并发线程数,默认为1,(注:该配置会占用服务器CPU资源,需根据服务器情况指定)*/
    request.setTaskNum(1);
    UploadVideoImpl uploader = new UploadVideoImpl();
    UploadVideoResponse response = uploader.uploadVideo(request);
    System.out.print("RequestId=" + response.getRequestId() + "\n");  //请求视频点播服务的请求ID
    if (response.isSuccess()) {
        System.out.print("VideoId=" + response.getVideoId() + "\n");
    } else {
        /* 如果设置回调URL无效,不影响视频上传,可以返回VideoId同时会返回错误码。其他情况上传失败时,VideoId为空,此时需要根据返回错误码分析具体错误原因 */
        System.out.print("VideoId=" + response.getVideoId() + "\n");
        System.out.print("ErrorCode=" + response.getCode() + "\n");
        System.out.print("ErrorMessage=" + response.getMessage() + "\n");
    }
}
  • 可采用流式文件传输(可参考博主的”对象存储”中提到的流式存储)
@Override
public String uploadAliyunVideo(MultipartFile file) throws IOException {
    String fileName = file.getOriginalFilename();
    String title = fileName.substring(0, fileName.lastIndexOf("."));
    InputStream inputStream = file.getInputStream();
    UploadStreamRequest request = new UploadStreamRequest(ConstantVodUtils.ACCESS_KEY_ID, ConstantVodUtils.ACCESS_KEY_SECRET, title, fileName, inputStream);
    UploadVideoImpl uploader = new UploadVideoImpl();
    UploadStreamResponse response = uploader.uploadStream(request);
    String videoId = null;

    if(response.isSuccess()) {
        videoId = response.getVideoId();
    } else {
        videoId = response.getVideoId();
    }
    return videoId;
}
  • 此时上传文件时,会报文件大小上传错误,所以在配置文件中配置文件上传大小
最大上传单个文件大小:默认1MB
spring.servlet.multipart.max-file-size=1024MB
最大上传多个文件大小:默认10MB
spring.servlet.multipart.max-request-size=1024MB
  • 删除测试
@Override
public void deleteAliyunVideo(String videoId) throws MyException {
    try {
        // 初始化对象
        DefaultAcsClient client = InitObject.initVodClient(ConstantVodUtils.ACCESS_KEY_ID, ConstantVodUtils.ACCESS_KEY_SECRET);
        // 创建删除视频的request对象
        DeleteVideoRequest request = new DeleteVideoRequest();
        // 向request设置视频的id,也可以是"id1, id2,id3, ..."删除多个
        request.setVideoIds(videoId);
        // 调用初始化对象的方法实现删除
        client.getAcsResponse(request);
    }catch (Exception e){
        e.printStackTrace();
        throw new MyException(20001, "删除视频失败!");
    }
}

Original: https://www.cnblogs.com/aitiknowledge/p/15944638.html
Author: xsha_h
Title: 阿里云视频点播

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/643945/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球