关于断点续传

查看 50|回复 5
作者:humbass   
最近一个项目要用到大文件的断点续传,多大文件呢,大的包可能会有 20G ,目前的做法是
前端取到文件后,按 2m 一个片段进行分片,然后逐个上传
后端收到完整的文件后放在一个隐藏的目录内,等最后的文件传完之后,逐一合并,并移动到指定的文件夹
实现是实现了,最大的问题不是上传,而是合并以及转移文件相当消耗时间
有没有更高级的做法呢?
vivisidea   
是需要完全要自己实现么?你们项目有没有用对象存储?对象存储 sdk 一般都支持这个分片上传+合并操作的
https://aws.amazon.com/cn/blogs/compute/uploading-large-objects-to-amazon-s3-using-multipart-upload-and-transfer-acceleration/
mx1700   
移动如果同一硬盘不应该耗时啊
合并的方式不太对,应该直接创建完整大小的空文件,上传接口拿到的缓冲数据直接写到完整文件的指定位置,不需要合并操作
humbass
OP
  
@vivisidea 因为是企业内网网络(含广义上的内网)使用,不能使用第三方的云端存储。
misoomang   
开源的对象存储 minio 是否可以考虑使用搭建
InDom   
@mx1700 #2 认可 2 楼的思路,分片上传只是在上传过程中分片处理。
保存时可以分片最后合并,也可以直接写到最终文件的对应位置。
自己做一下记录都接收到哪些块了,这样也方便协商未完成的部份。
您需要登录后才可以回帖 登录 | 立即注册

返回顶部