VOD - 视频点播
questions:
- 它在项目是处理什么问题的?
- 大概写法是什么?
- 对于团队有什么好处?
- 安全
- 有没有其他的替代方案
- 替代了什么老的技术,解决了老技术的什么问题?(备选)
视频点播
- 上传视频
- 删除视频
- 获得 VideoAuth
视频点播 - 上传视频
- 阿里云的上传 SDK 提供各种上传服务,其中视频的上传为“上传本地音视频到视频点播:默认使用分片上传,最大支持48.8 TB的单个文件并且支持断点续传。”
- 上传所需要的参数:accessKeyId, accessKey, 视频文件名, 视频名 (不带文件扩展名),文件 inputstream
- 上传所用到的工具
- UploadStreamRequest, 构造方法参数:accessKeyId, accessKey, 视频文件名, 视频名 (不带文件扩展名),文件 inputstream
- uploadVideoImpl (uploader) -> uploadVideoImpl .uploadStream() 方法,UploadStreamRequest 作为参数传递 -> 返回参数:UploadStreamResponse
- UploadStreamResponse 的两个方法
- isSuccess(),获得代表上传成功与否的 boolean 值
- getVideoId(),获得 UploadStreamResponse 中的属性 videoId 值
- 回调URL
视频点播 - 根据 videoId 删除视频
- initObject.initVodClient(),参数:accessKeyId 和 accessKeySecret -> DefaultAcsClient
- DeleteVideoRequest -> DeleteVideoRequest.setVideoIds(),设置要删除视频的 videoId
- DefaultAcsClient.getAcsResponse(),DeleteVideoRequest 作为参数传递
视频点播 - 根据 videoId 获得视频播放凭证
- initObject.initVodClient(),参数:accessKeyId 和 accessKeySecret -> DefaultAcsClient
- GetVideoPlayAuthRequest -> GetVideoPlayAuthRequest.setVideoId(),设置目标视频的 videoId
- DefaultAcsClient.getAcsResponse(),GetVideoPlayAuthRequest 作为参数传递,返回值:GetVideoPlayAuthResponse
- GetVideoPlayAuthResponse.getPlayAuth() 方法,获得目标视频的播放凭证
note:
可能 main idea 都是一样的,通过 initObject 的 initVodClient() 方法,获得 DefaultAcsClient,作为查询或者操作视频对象的权限;然后再根据操作的不同,创建对应 request 的实例,例如删除视频的 DeleteVideoRequest 和获取视频播放的 GetVideoPlayAuthRequest,之后通过 request 的setVideoId(s) 方法,设置要操作的目标视频的 videoId;接着就是 DefaultAcsClient 的 getAcsClient() 方法,根据实际操作的不同来决定要不要获得返回值