代码拉取完成,页面将自动刷新
分片上传的方式有很多,这里只是列举了一种,无法满足所有场景,仅供学习参考。若需要了解上传时的流程设计,可查看 上传设计思路,以便快速定位该项目示例是否符合您的需求。
以上框架和技术均为截至 24年5月 的最新的版本,旧版本需自行查看相关变动
- 两个前端项目的逻辑代码基本一致,为适配两个框架不同组件库的组件,可能会有极细微的差异,可忽略不计
- vue 项目使用 vue3 setup 语法糖 与 vue2 差异较大,暂未提供 vue2 版本,语法差异自行处理。
展示及请求
前端控制台
浏览器可支持的文件预览
目录结构
下载及暂停操作展示
下载内容展示
一个大文件的上传,对接后端的请求有三个
上传时通过
p-limit
限制了上传的并发请求。 下载由于有暂停操作,需要循环过程中中止,一旦使用p-limit
,暂时没有想到两者结合的完美暂停方案,因此并未对下载做并发限制,欢迎 PR。
以上流程图的文字版:
优化前,一个 2.1G 的文件上传耗时 18s
优化后仅 2 s
ReactMinioSpringApplicationTests
目前刷新网页是不会留存已下载文件的分片数据的,因为所有数据都在网页内存中。若要实现边下载边缓存,即使关闭浏览器也能缓存结果的功能,有以下几种思路实现。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。