个人网盘开发

前期准备

  1. OSS对象存储开发文档
  2. 官方Demo

整理思路

需求分析

  1. 支持暂停任务和继续任务
  2. 支持后台下载或上传

业务逻辑

  1. 明确上传和下载要用到的请求类型
    • 断点续传OSSResumableUploadRequest
    • 断点下载OSSGetObjectRequest, 配合其range属性
  2. 建立模型
    • UploadModel
    • DownloadModel
  3. 创建断点续传请求和断点下载请求的子类
    • ResumableUploadRequest
    • ResumableDownloadRequest
  4. 对于上传和下载的文件进行本地数据库缓存
    • FMDB
  5. 上传和下载状态
    • LoadState
  6. 创建下载管理类
    • LoadManager
  7. 创建代理
    • LoadManagerUploadDelegate
    • LoadManagerDownloadDelegate
  8. 绑定到界面
    • UITableViewController
    • UITableViewCell

业务流程

  1. 程序启动时
    • 创建LoadManager单例
  2. LoadManager构造方法中
    • 实例化OSSClient对象
    • 获取缓存的arrayOfUploadModel, arrayOfDownloadModel
    • 通过arrayOfUploadModel创建arrayOfUploadRequest
    • 通过arrayOfDownloadModel创建arrayOfDownloadRequest
  3. 在上传列表界面和下载列表界面加载时
    • arrayOfUploadRequest作为上传列表的数据源
    • arrayOfDownloadRequest作为下载列表的数据源
  4. 数据展示
    • cell里声明request属性, 将数据源的request传递给cell
    • cell里通过requestuploadModel或者downloadModel进行数据展示 5.上传和下载
    • LoadManager中,通过request创建对应的OSSTask,使用OSSTask进行上传和下载
    • cell中,点击按钮,根据相应的状态,通过request来暂停任务或创建新的OSSTask来执行任务