- 参考示例: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/
转载文章受原作者版权保护。转载请注明原作者出处!