前期准备
- OSS对象存储开发文档
- 官方Demo
整理思路
需求分析
- 支持暂停任务和继续任务
- 支持后台下载或上传
业务逻辑
- 明确上传和下载要用到的请求类型
- 断点续传OSSResumableUploadRequest
- 断点下载OSSGetObjectRequest, 配合其range属性
- 建立模型
- UploadModel
- DownloadModel
- 创建断点续传请求和断点下载请求的子类
- ResumableUploadRequest
- ResumableDownloadRequest
- 对于上传和下载的文件进行本地数据库缓存
- 上传和下载状态
- 创建下载管理类
- 创建代理
- LoadManagerUploadDelegate
- LoadManagerDownloadDelegate
- 绑定到界面
- UITableViewController
- UITableViewCell
业务流程
- 程序启动时
- 在
LoadManager构造方法中
- 实例化
OSSClient对象
- 获取缓存的
arrayOfUploadModel, arrayOfDownloadModel
- 通过
arrayOfUploadModel创建arrayOfUploadRequest
- 通过
arrayOfDownloadModel创建arrayOfDownloadRequest
- 在上传列表界面和下载列表界面加载时
- 将
arrayOfUploadRequest作为上传列表的数据源
- 将
arrayOfDownloadRequest作为下载列表的数据源
- 数据展示
- 在
cell里声明request属性, 将数据源的request传递给cell
- 在
cell里通过request的uploadModel或者downloadModel进行数据展示
5.上传和下载
- 在
LoadManager中,通过request创建对应的OSSTask,使用OSSTask进行上传和下载
- 在
cell中,点击按钮,根据相应的状态,通过request来暂停任务或创建新的OSSTask来执行任务