最近公司有一个新需求,直接将视频上传到 OSS 服务器 ,并且要求
1.断点续传
2.要求可以手动暂停继续 上传
3.判断网络不在 Wi-Fi 提示是否上传
明确需求后开始做好准备工作,首先去了解一下 OSS 的 SDK,详细可以直接搜索 OSS的开发文档
然后就是选择视频的问题了,要求不多的话可以直接使用 UIImagePickerController ,我这边因为之前使用了
一个图片视频选择框架,所以推荐使用 TZImagePickerController。 在这里推荐使用 pod 管理第三方库 将需要文件导入项目中
pod 'TZImagePickerController'
pod 'AliyunOSSiOS','~> 2.10.7'
主要难点就是手动暂停和继续上传了,阿里云文档方面对 暂停 继续 的 相关文献基本上没有,后来问过阿里云技术支持
确实是没有提供 暂停 继续 的方法 ,正当快要放弃的时候看到他提供了一个 cancel 方法,
没错就是直接取消上传就暂停了,继续的话重写发起请求就好了
需要注意的 objectKey,因为当时为了避免文件名重复,所以每次发起请求的时候都会加上时间戳的拼接,如果你也一样
那么问题就来了,暂停之后继续发起请求的时候 objectKey 因为时间改变也重新改变, OSS那边会认为你新上传了一个文件
这样就续不上,在这个坑里面呆了一下午后面才注意到
实现思路
1.因为上传文件是一个公用且常用的功能,可写成一个单利,然后按照要求封装一下方法以方便使用
2.配置 OSS,需要注意的是 播放地址 和上传地址
3.具体实现demo 直接下载吧,就不多说了,不明白的可以直接在下方评论或者联系
链接:https://pan.baidu.com/s/1Q-DpiKsJNfIFAY75rGyqTw 密码:sf2n