Skip to content

文件传输概述

云文档提供三种文件上传方式,可根据文件大小及上传场景,选择合适的上传接口。

上传方式概述

能力适用场景调用接口
单块上传网络稳定,且非超大文件1. 请求文件上传信息
2. 上传实体文件
3. 提交文件上传完成
分块上传网络不稳定,或一两百兆的大文件上传1. 【分块上传】初始化
2. 【分块上传】签发分块上传地址
3. 上传实体文件
4. 【分块上传】提交完成
秒传存储上已有相应文件,不需再存储一份文件实体1. 文件秒传

注意事项

1. 单块上传

  • 请求文件上传信息里填入的文档size和上传文件实体接口里文件实体的size大小需要保持一致;
  • 若是服务端调用上传实体文件接口,需要将文件大小塞到Content-Length。

2. 分块上传

  • 目前私有化存储分块大小固定是64M,可通过环境变量自定义分块大小;
  • 分块上传地址有效期为15分钟,若上传时发现地址失效,可根据分块文件的part_number重新申请该文件块及后续各块文件的上传地址;
  • 分块上传时需根据文件分块的顺序和part_number一一对应上传每块文件,并记录每块文件上传成功后response header中的X-Wps3-Info-Token;
  • 根据上传单块实体文件完成以后记录的X-Wps3-Info-Token,按照对应的part_number和X-Wps3-Info-Token提交分块上传完成。

3. 秒传

  • 单块文件秒传判定:根据文件的sha256+size值判定是否秒传,若一致则认为该文件已在存储上存在,接口直接返回文件信息;

  • 分块文件秒传判定:

    a. 根据【分块上传任务初始化】获取分块文件大小;

    b. 将文件按照分块大小分好以后算出每块文件的sha256;

    c. 按照文件分块顺序,将hash值传入到数组(必须严格按顺序传入,否则无法判断秒传);

    d. 若一致则认为该文件已在存储上存在,接口直接返回文件信息。

4. 其他

  • 受存储网关限制,单块上传文件最大5TB;
  • 分块上传,每块文件大小需大于5MB且小于5GB,分块数量最大一万块;
  • 网关有2小时超时限制,若宽带不够,大文件上传会因为超时而失败。