前期准备
- 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
来执行任务