阿里云视频点播

  • 参考示例: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/608490/

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

(0)

大家都在看

  • Spring Boot入门系列(十八)整合mybatis,使用注解的方式实现增删改查

    之前介绍了Spring Boot 整合mybatis 使用xml配置的方式实现增删改查,还介绍了自定义mapper 实现复杂多表关联查询。虽然目前 mybatis 使用xml 配置…

    Java 2023年5月30日
    079
  • 消息摘要(数字摘要)的理解-查看很多资料后的感悟

    Java 密码技术 – 02- 消息摘要(数字摘要) 在开发过程中经常会遇到 MD5、SHA1、SHA256 等词语,这些是加密算法吗?严格意义上讲,这些并不是加密算法…

    Java 2023年6月16日
    070
  • Centos7 搭建 Flume 搭配 Hadoop 采集 Nginx 日志

    本文目的是根据前文的博文,打造一个Hadoop、Sprak的服务器闭环。也是经验归纳。 版本信息 CentOS: Linux localhost.localdomain 3.10….

    Java 2023年5月30日
    068
  • 分布式session的解决方法

    一、背景 上篇博客,使用微博社交登录谷粒商城后,将用户信息保存在session中,此时进入到谷粒商城的任何页面都需要能够取到用户信息, 谷粒商城首页(gulimall.com/in…

    Java 2023年5月30日
    069
  • Activemq消息持久化

    官方文档: http://activemq.apache.org/persistence.html ActiveMq持久化相关配置:/usr/local/apache-active…

    Java 2023年5月29日
    060
  • 数据库CRUD封装

    数据库CRUD封装 数据库CRUD封装 在一个项目中,我们会进行后台数据库的连接。所以会频繁的使用数据库的CRUD操作,所以我们能不能抽取公共部分,并形成一个工具类呢?我们来试试。…

    Java 2023年6月5日
    0102
  • AsList()方法详解

    AsList()方法详解 在Java中,我们应该如何将一个数组array转换为一个List列表并赋初始值?首先想到的肯定是利用List自带的add()方法,先new一个List对象…

    Java 2023年6月8日
    060
  • 【Redis】skiplist跳跃表

    有序集合Sorted Set zadd zadd用于向集合中添加元素并且可以设置分值,比如添加三门编程语言,分值分别为1、2、3: 127.0.0.1:6379> zadd …

    Java 2023年6月8日
    070
  • 哈夫曼树的构建与最小带权路径长度

    注意:哈夫曼树并不唯一,但带权路径长度一定是相同的。 二叉树:每个结点最多含有两个子树的树称为二叉树。 定理:对于具有n个叶子结点的哈夫曼树,共有2n-1个结点。 哈夫曼树介绍 1…

    Java 2023年6月9日
    091
  • idea使用教程-常用设置

    【1】进入设置: 【2】设置主题: 【3】编辑区的字体变大或者变小: 【4】鼠标悬浮在代码上有提示: 【5】自动导包和优化多余的包:手动导包:快捷键:alt+enter自动导包和优…

    Java 2023年6月5日
    075
  • 关于JSP学习中一些记录

    【JSP探究】 一、JSP转换后的源文件的位置 由于不同版本的IDEA的默认路径不同,所以我们无法统一按照网上所给路径进行查找 我们可以创建一个JavaWeb项目并运行,查看日志就…

    Java 2023年6月13日
    062
  • 动力节点Spring框架学习笔记-王鹤(三)spring整合MyBatis

    正在学Spring,整理了相关的学习笔记,分享给大家共同进步,视频看的动力节点王鹤老师讲的spring框架,条理非常清晰,够详细 *视频观看地址 将 MyBatis 与 Sprin…

    Java 2023年6月7日
    063
  • openresty操作mongodb

    最近项目中使用openresty,需要通过openresty连接mongo,经过几番折腾终于有了一个结果,现将其记录下来,也感谢模块提供者 使用openresty操作mongo 1…

    Java 2023年6月8日
    067
  • Makefile 简介

    一、引例: Makefile objects=test1.o test2.o main:$(objects) gcc -o main $(objects) clean: rm ma…

    Java 2023年6月5日
    072
  • Java学习 (11)Java流程控制篇(02)顺序结构&选择结构

    顺序结构 选择结构 if 单选择结构、if 双选择结构、if 多选择结构 if 单选择结构 if 双选择结构 if 多选择结构 if 嵌套语句 Switch选择结构 + switc…

    Java 2023年6月8日
    076
  • SpringMVC工作原理源码分析

    SpringMVC工作原理源码分析 首先、当请求进入Tomcat时、在web.xml查找对应的Servlet类、找到DispatcherServlet类并且匹配路径 /、现在创建D…

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