大文件上传怎么提速

2023-05-19 13:49:52 +08:00
 pppouj

对于 zip 文件的上传需要进行内容的验证和解析。 1 、目前的方案是先上传到文件服务器后,在将文件从硬盘加载在内存中进行逻辑提取部分重要信息处理后删除。 2 、有什么好的加速方式吗?目前想到只有分片上传 3 、语言不限

1850 次点击
所在节点    程序员
9 条回复
opengps
2023-05-19 14:07:01 +08:00
提取的内容是啥?有些基础信息只需要读取前面多少个字节就可以
如果必须全量上传,分片的目的未必是提速,可能只是为了削弱压力峰值
jones2000
2023-05-19 14:17:20 +08:00
本地先初略分析一遍, 去掉无用的数据, 再切片,切片的时候根据实际场景,分有关联的切片(必须 1 ,2 ,3 切片顺序分析),独立切片( 1 ,2 ,3 切换可以独立分析,没有顺序)等等。每个切片单独 zip ,多线程同步上传。这样上传 1 个切片就可以分析一个,提高速度。
pppouj
2023-05-19 14:38:51 +08:00
@opengps 的确是全量上传,除了提升带宽没有其他方式可以提速吗?
pppouj
2023-05-19 14:40:58 +08:00
@jones2000 的确是可以先去除无用数据,这点倒是没想到
opengps
2023-05-19 14:51:35 +08:00
@pppouj 如果你上行带宽用满了,那么物理瓶颈已经摆在这里了,除了提高上行确实多大优化空间。改不改分片上传确实没多大提速意义。倒是后台校验线程可以考虑多线程处理,但这里显然不是最耗费时间的环节了,优化效果不会太明显
pppouj
2023-05-19 14:56:44 +08:00
的确是这个情况,目前是通过前端上传到 oss 后再在服务器从 oss 下载下来序列化到磁盘中,解压压缩包处理里面的逻辑,我想这一步不是也可以省略掉,感觉多此一举,直接上传到服务器中再通过多线程去处理 zip 包内的内容
opengg
2023-05-19 15:18:41 +08:00
把逻辑前置到前端或者边缘节点比如 cf worker
aec4d
2023-05-19 23:29:21 +08:00
@pppouj 如果你把 oss 当作临时中转站,需要注意这种服务是否有删除惩罚条款,比如上传文件最少保存 90 天,不足 90 天按照 90 天扣费
documentzhangx66
2023-05-20 00:47:24 +08:00
1.不考虑安全隐私问题的话,文件先在本地计算 md5 ,如果服务器有这个 md5 ,就不用上传了。

2.确定要上传的文件,小文件用 7z 压缩,大文件用 zstd 压缩。

3.分片传输,多线程传输,允许断点续传。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/941247

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX