我后端存储大文件的时候是切分存储的,对一个大文件切分成了n块,存在Mongodb中。现在在前端采用JS实现多线程下载,目前的思路是在前端发钱n个ajax,然后利用promise.all等待这n个请求的返回,返回后数据拼接然后设置a标签的download属性进行下载。目前存在两个问题:
1.因为我是等所有的数据都回来后再整合下载的,所以数据先是在内存中的,对于一个很大的文件,比如说1G或2G这样显然是不合理的。
2.再说断点续传问题,思路为点击下载这个文件,前端先读取这个文件,然后判断这个文件的第i(0<i<n)块是否已经下载了,仅下载未下载的部分,但是问题是JS无法写入到本地文件啊。
想请问各位码友有什么好的解决方案吗?有一个朋友说看能不能使用浏览器的代理,就是说浏览器每次请求的是这个代理,然后在代理中实现文件的各种操作,但是他又没有具体说这个代理究竟是个什么东西,具体该怎么实现,所以不太好搜索材料。希望各位码友不吝赐教。
你可以分开存,但是为什么要分开下载?后端拼接前端一次下载不可以吗?