文件上传
文件上传的消息格式
本质上就是一个数据提交
- 一般使用POST请求
- content-type一般使用multipart/form-data
- 请求体被boundary定界符分割,每一块是一个键值对
说说大文件上传
断点续传 断开重连重传 切片上传 文件校验
方案
- 切断切片 chunk 1024M 500k
- 上传切片:切片取名:hash index
- 后端合并切片
加料:
- 前端切片:主进程做卡断,web-worker多线程切片,处理后交给主进程
- 切完后:将切片的blob存储到indexDB,下次用户进来后,嗅探一下是否存在未完成的切片,有就尝试继续上穿
- websocket实时通知,和请求序列的控制 wss
断点续传
在做分片上传的时候如果用户刷新了页面,这时候后端可以返回当前的上传进度,前端可以从这个进度上传下一个分片。 但是页面刷新之后前端的源文件会丢失,用户就需要重新点击上传并选择源文件。有没有一种自动化的方法可以自动读取源文件
可以将源文件存到本地indexedDB,刷新后从indexedDB取到文件分片继续上传。