package vod.demo;
import com.alibaba.fastjson.JSONObject;
import com.aliyun.vod.upload.impl.UploadAttachedMediaImpl;
import com.aliyun.vod.upload.impl.UploadImageImpl;
import com.aliyun.vod.upload.impl.UploadM3u8FileImpl;
import com.aliyun.vod.upload.impl.UploadVideoImpl;
import com.aliyun.vod.upload.req.*;
import com.aliyun.vod.upload.resp.*;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
/**
* 以下Java示例代码演示了如何在服务端上传媒资文件至视频点播,媒资类型支持音频、视频和图片。
* <p>
* 一、音视频上传目前支持4种方式上传:
*
* 1.上传本地文件,使用分片上传,并支持断点续传,参见testUploadVideo函数。
* 1.1 当断点续传关闭时,最大支持上传任务执行时间为3000秒,具体可上传文件大小与您的网络带宽及磁盘读写能力有关。
* 1.2 当断点续传开启时,最大支持48.8TB的单个文件,注意,断点续传开启后,上传任务执行过程中,同时会将当前上传位置写入本地磁盘文件,影响您上传文件的速度,请您根据文件大小选择是否开启
*
* 2.上传网络流,可指定文件URL进行上传,支持断点续传,最大支持48.8TB的单个文件。
* 该上传方式需要先将网络文件下载到本地磁盘,再进行上传,所以要保证本地磁盘有充足的空间。参见testUploadURLStream函数。
*
* 3.上传文件流,可指定本地文件进行上传,不支持断点续传,最大支持5GB的单个文件。参见testUploadFileStream函数。
*
* 4.流式上传,可指定输入流进行上传,支持文件流和网络流等,不支持断点续传,最大支持5GB的单个文件。参见testUploadStream函数。
* <p>
*
* 二、图片上传目前支持2种方式上传:
* 1.上传本地文件,不支持断点续传,最大支持5GB的单个文件,参见testUploadImageLocalFile函数
* 2.上传文件流和网络流,InputStream参数必选,不支持断点续传,最大支持5GB的单个文件。参见testUploadImageStream函数。
* 注:图片上传完成后,会返回图片ID和图片地址,也可通过GetImageInfo查询图片信息,参见接口文档 https://help.aliyun.com/document_detail/89742.html
* <p>
*
* 三、m3u8文件上传目前支持2种方式:
* 1.上传本地m3u8音视频文件(包括所有分片文件)到点播,需指定本地m3u8索引文件地址和所有分片地址。
* 2.上传网络m3u8音视频文件(包括所有分片文件)到点播,需指定m3u8索引文件和分片文件的URL地址。
*
* 注:
* 1) 上传网络m3u8音视频文件时需要保证地址可访问,如果有权限限制,请设置带签名信息的地址,且保证足够长的有效期,防止地址无法访问导致上传失败
* 2) m3u8文件上传暂不支持进度回调
* <p>
*
* 四、上传进度回调通知:
* 1.默认上传进度回调函数:视频点播上传SDK内部默认开启上传进度回调函数,输出不同事件通知的日志,您可以设置关闭该上传进度通知及日志输出;
* 2.自定义上传进度回调函数:您可根据自已的业务场景重新定义不同事件处理的方式,只需要修改上传回调示例函数即可。
* <p>
*
* 五、辅助媒资上传目前支持2种方式:
* 1.上传本地文件,不支持断点续传,最大支持5GB的单个文件,参见testUploadAttachedMediaLocalFile函数
* 2.上传文件流和网络流,InputStream参数必选,不支持断点续传,最大支持5GB的单个文件。参见testUploadAttachedMediaStream函数。
* <p>
*
* 六、支持STS方式上传:
* 1.您需要实现VoDRefreshSTSTokenListener接口的onRefreshSTSToken方法,用于生成STS信息,
* 当文件上传时间超过STS过期时间时,SDK内部会定期调用此方法刷新您的STS信息进行后续文件的上传。
* <p>
*
* 七、可指定上传脚本部署的ECS区域(设置Request的EcsRegionId参数,取值参考存储区域标识:https://help.aliyun.com/document_detail/98194.html),
* 如果与点播存储(OSS)区域相同,则自动使用内网上传文件至存储,上传更快且更省公网流量
* 由于点播API只提供外网域名访问,因此部署上传脚本的ECS服务器必须具有访问外网的权限。
*
* 注意:
* 请替换示例中的必选参数,示例中的可选参数如果您不需要设置,请将其删除,以免设置无效参数值与您的预期不符。
*/
public class UploadVideoDemo {
//账号AK信息请填写(必选)
private static final String accessKeyId = "<Your accessKeyId>";
//账号AK信息请填写(必选)
private static final String accessKeySecret = "<Your accessKeySecret>";
public static void main(String[] args) {
// 一、视频文件上传
// 视频标题(必选)
String title = "测试标题";
// 1.本地文件上传和文件流上传时,文件名称为上传文件绝对路径,如:/User/sample/文件名称.mp4 (必选)
// 2.网络流上传时,文件名称为源文件名,如文件名称.mp4(必选)。
// 3.流式上传时,文件名称为源文件名,如文件名称.mp4(必选)。
// 任何上传方式文件名必须包含扩展名
String fileName = "/Users/test/video/test.mp4";
// 本地文件上传
testUploadVideo(accessKeyId, accessKeySecret, title, fileName);
// 待上传视频的网络流地址
String url = "http://test.aliyun.com/video/test.mp4";
// 2.网络流上传
// 文件扩展名,当url中不包含扩展名时,需要设置该参数
String fileExtension = "mp4";
testUploadURLStream(accessKeyId, accessKeySecret, title, url, fileExtension);
// 3.文件流上传
// testUploadFileStream(accessKeyId, accessKeySecret, title, fileName);
// 4.流式上传,如文件流和网络流
InputStream inputStream = null;
// 4.1 文件流
try {
inputStream = new FileInputStream(fileName);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
// 4.2 网络流
try {
inputStream = new URL(url).openStream();
} catch (IOException e) {
e.printStackTrace();
}
testUploadStream(accessKeyId, accessKeySecret, title, fileName, inputStream);
// 二、图片上传
// 1.图片上传-本地文件上传
// testUploadImageLocalFile(accessKeyId, accessKeySecret);
// 2.图片上传-流式上传(文件流和网络流)
// testUploadImageStream(accessKeyId, accessKeySecret);
// 三、m3u8文件上传
// 1.上传本地m3u8音视频文件
testUploadLocalM3u8(accessKeyId, accessKeySecret);
// 2.上传网络m3u8音视频文件
testUploadWebM3u8(accessKeyId, accessKeySecret);
// 四、辅助媒资上传
// 辅助媒资-本地文件上传
// testUploadAttachedMediaLocalFile(accessKeyId, accessKeySecret);
// 辅助媒资-流式上传(文件流和网络流)
// testUploadAttachedMediaStream(accessKeyId, accessKeySecret);
}
/**
* 本地文件上传接口
*
* @param accessKeyId
* @param accessKeySecret
* @param title
* @param fileName
*/
private static void testUploadVideo(String accessKeyId, String accessKeySecret, String title, String fileName) {
UploadVideoRequest request = new UploadVideoRequest(accessKeyId, accessKeySecret, title, fileName);
/* 可指定分片上传时每个分片的大小,默认为2M字节 */
request.setPartSize(2 * 1024 * 1024L);
/* 可指定分片上传时的并发线程数,默认为1,(注:该配置会占用服务器CPU资源
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【资源介绍】 毕业设计:基于SpringBoot的在线教育系统.zip毕业设计:基于SpringBoot的在线教育系统.zip毕业设计:基于SpringBoot的在线教育系统.zip毕业设计:基于SpringBoot的在线教育系统.zip毕业设计:基于SpringBoot的在线教育系统.zip毕业设计:基于SpringBoot的在线教育系统.zip毕业设计:基于SpringBoot的在线教育系统.zip毕业设计:基于SpringBoot的在线教育系统.zip毕业设计:基于SpringBoot的在线教育系统.zip 【备注】 该项目是个人毕设项目,答辩评审平均分达到95分,代码都经过测试ok后才上传,确保运行!欢迎下载使用,可用于小白学习、进阶。 该资源主要针对计算机、通信、人工智能、自动化等相关专业的学生、老师或从业者下载使用,亦可作为期末课程设计、课程大作业、毕业设计等。 项目整体具有较高的学习借鉴价值!基础能力强的可以在此基础上修改调整,以实现不同的功能。 欢迎下载,欢迎沟通,互相学习,共同进步!提供答疑!
资源推荐
资源详情
资源评论
收起资源包目录
毕业设计:基于SpringBoot的在线教育系统.zip (211个子文件)
.gitignore 387B
UploadVideoDemo.java 39KB
PermissionServiceImpl.java 11KB
EduCourseServiceImpl.java 7KB
PayLogServiceImpl.java 5KB
EduCourseController.java 4KB
HttpClient.java 4KB
UcenterMemberServiceImpl.java 4KB
EduTeacherController.java 4KB
VideoOperation.java 4KB
VideoServiceImpl.java 4KB
TokenLoginFilter.java 3KB
TokenWebSecurityConfig.java 3KB
RedisConfig.java 3KB
EduChapterServiceImpl.java 3KB
UserController.java 3KB
TokenAuthenticationFilter.java 3KB
CodeGenerator.java 3KB
CodeGenerator.java 3KB
CodeGenerator.java 3KB
CodeGenerator.java 3KB
CodeGenerator.java 3KB
RoleServiceImpl.java 3KB
MemuHelper.java 3KB
EduSubjectServiceImpl.java 3KB
AuthGlobalFilter.java 3KB
JwtUtils.java 3KB
ErrorHandlerConfig.java 3KB
IndexServiceImpl.java 3KB
CourseFrontController.java 3KB
RoleController.java 2KB
OrderServiceImpl.java 2KB
EduVideoController.java 2KB
EduTeacherServiceImpl.java 2KB
CorsConfig.java 2KB
SubjectEasyExcelListener.java 2KB
EduCourse.java 2KB
MsmServiceImpl.java 2KB
OssServiceImpl.java 2KB
Permission.java 2KB
EduVideo.java 2KB
OrderController.java 2KB
EduChapterController.java 2KB
TeacherFrontController.java 2KB
UcenterMemberController.java 2KB
CmsBannerAdminController.java 2KB
Order.java 2KB
PermissionController.java 2KB
UcenterMember.java 2KB
JsonExceptionHandler.java 2KB
UserDetailsServiceImpl.java 2KB
SecurityUser.java 2KB
EduVideoServiceImpl.java 2KB
PayLogController.java 2KB
EduFrontController.java 2KB
OrderMemberInfo.java 2KB
VodController.java 2KB
PayLog.java 2KB
EduTeacher.java 2KB
OrderCourseInfo.java 1KB
IndexController.java 1KB
User.java 1KB
R.java 1KB
CourseWebVo.java 1KB
PermissionHelper.java 1KB
EduSubject.java 1KB
SwaggerConfig.java 1KB
CmsBanner.java 1KB
EduChapter.java 1KB
Role.java 1KB
RandomUtil.java 1KB
EduSubjectController.java 1KB
TokenLogoutHandler.java 1KB
UserRole.java 1KB
EduCourseDescription.java 1KB
RolePermission.java 1KB
EduCourseService.java 1KB
ConstantPropertiesUtil.java 1KB
MD5.java 1KB
CourseDetail.java 1KB
PermissionService.java 1KB
TestExcelWriter.java 1KB
TokenManager.java 1KB
VodClient.java 976B
OssController.java 965B
CmsBannerFrontController.java 958B
CourseData.java 954B
ConstantPropertiesUtil.java 927B
EduLoginController.java 883B
DefaultPasswordEncoder.java 865B
GlobalExceptionHandler.java 843B
UnauthorizedEntryPoint.java 838B
CmsBannerServiceImpl.java 827B
OrderApplication.java 795B
ConstantPropertiesUtil.java 791B
MapperConfig.java 777B
MemberClient.java 769B
EduClient.java 742B
User.java 738B
UserServiceImpl.java 733B
共 211 条
- 1
- 2
- 3
资源评论
z同学的编程之路
- 粉丝: 1808
- 资源: 2129
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功