环境:jdk13
依赖:
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.3.3</version>
</dependency>
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>3.8.0</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-vod</artifactId>
<version>2.15.2</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.28</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.2</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-sdk-vod-upload</artifactId>
<version>1.4.11</version>
</dependency>
上传视频代码片段:阿里云官方文档,本地上传示例的代码
```java
@Test
public void testUpload() {
//账号AK信息请填写(必选)
String accessKeyId = "*****填你自己的*****";
//账号AK信息请填写(必选)
String accessKeySecret = "*****填你自己的*****";
//视频标题(必选)
String title = "测试标题1";
//本地文件上传和文件流上传时,文件名称为上传文件绝对路径,如:/User/sample/文件名称.mp4 (必选)
//文件名必须包含扩展名
String fileName = "C:\\Users\\Alex\\Desktop\\t.mp4";
UploadVideoRequest request = new UploadVideoRequest(accessKeyId,accessKeySecret,title,fileName);
request.setPrintProgress(true);
UploadVideoImpl uploadVideo = new UploadVideoImpl();
UploadVideoResponse response = uploadVideo.uploadVideo(request);
if (response.isSuccess()){
System.out.println(response.getVideoId());
}else {
System.out.println(response.getVideoId());
System.out.println(response.getCode());
System.out.println(response.getMessage());
}
}
执行结果:控制台输出
RequestId=D6262DD2-B6F5-4AA1-BB33-D2D8D18781F9
VideoId=acb7e9f4600b49bfb87c9b19d5bd1c79
ErrorCode=null
ErrorMessage=com/aliyun/oss/internal/OSSUdfOperation
Process finished with exit code 0
根据报错信息:“com/aliyun/oss/internal/OSSUdfOperation”查找该类,并不在oss3.8.0的包中
参考官方文档,将aliyun-sdk-oss版本换至3.1.0
再次执行仍报错:控制台输出:
Start to upload videoId 36331353e70d489ca551302569613651......
2211663 bytes in total will be uploaded to OSS.
RequestId=1B3A5E9E-277D-469E-87B4-FA13D8ACE4DB
VideoId=36331353e70d489ca551302569613651
ErrorCode=null
ErrorMessage=sun/misc/BASE64Encoder
解决方法:根据报错信息:sun/misc/BASE64Encoder 推断与base64有关,jdk1.9之后不用这个类
但是阿里的源码又不能改,只能把jdk降到1.8版本。
2211663 bytes in total will be uploaded to OSS.
1048576 bytes have been written at this time, upload progress: 47%(1048576/2211663)
1048576 bytes have been written at this time, upload progress: 94%(2097152/2211663)
114511 bytes have been written at this time, upload progress: 100%(2211663/2211663)
Succeed to upload videoId 186cd8d5fec244ef995a5cd52d41fcec , 2211663 bytes have been transferred in total.
RequestId=2AD421B5-4ACB-4244-82A4-2737CE6ABE16
VideoId=186cd8d5fec244ef995a5cd52d41fcec
解决啦~