Skip to content

justorez/file-chunk-upload

Repository files navigation

文件分片上传

支持秒传续传,默认模拟 40% 概率服务异常(自行修改)。

demo

处理逻辑:

  1. 计算文件哈希,分片大小 1MB。
  2. 请求服务,检查文件是否已存在:
    1. 已存在,即秒传成功。
    2. 不存在,返回已上传的分片列表信息。
  3. 筛选还未上传的分片进行上传。
  4. 从队头开始,成功后下一个
    1. 上传失败,分片重新插入队头等待重试。
    2. 有分片失败 3 次后,整体上传中止。
  5. 分片全部上传成功后,发送合并请求,服务端完成合并,即上传完成。

说明:之所以失败重试插入队头而非队尾,是因为多次失败证明服务当前不可用,应尽快停止上传。如果插入队尾,在服务不可用的情况下,后续分片都会重试 3 次。

pnpm i

pnpm start