大文件上传:自定义协议
背景:文件上传涉及到前后端的交互,需要建立一个标准的通信协议,通过协议要能完成下面几件核心交互:
- 创建文件
- hash校验
- 分片数据上传
- 分片合并
创建文件协议
当客户端发送分片到服务器时,需要告知服务器分片属于哪一次文件上传,因此需要一个唯一标识来标识某一次文件上传。
创建文件协议就是用于获取文件上传的唯一标识。
uploadToken
: 文件上传的唯一标识chunkSize
: 分片大小,单位字节
hash校验协议
客户端有时需要校验单个分片或整个文件的hash,服务器需要告知客户端它们目前的具体情况。

Upload-Hash-Type
: 取值chunk
或file
,分别代表分片hash和文件整体hashUpload-Hash
: 分片或文件的具体hash值hasFile
: 指示服务器是否已经存储了对应的分片或文件rest
: 当校验文件hash时特有的响应字段, 指示该文件还剩余哪些hash没有上传url
: 当校验文件hash时特有的响应字段, 如果该文件已完成上传出现该字段, 表示文件的请求地址
分片数据上传协议
通过此协议,上传具体的文件分片数据

分片合并协议
当所有的分片全部上传后,通过此协议请求服务器完成分片合并。
