背景: 项目有比较多功能需要用到文件上传下载,文件最大有 1G 多,最坑的是客户可能网速受限只有 100KB/s ,客户使用的 web 端只能跟我们后端通信,不能跟外网通信。
项目的这个情况,希望能支持分片上传、断点续传。
今天初步有了个思路: 自己部署一套对象存储服务,由 web 端直接上传到对象存储系统,完成后由 web 端告知业务。 今天研究了 minIO ,发现需要自己实现分片上传下载,自己管理每个分片的传送情况。 想问问大家有没有更好的对象存储方案?
没有好用的对象存储,直接自己存文件也行,这是兜底方案了。
或者这个思路有没有需要改进的地方?有没有更好的思路?
PS:后端用 Go
1
creanme 2022-08-24 20:05:06 +08:00 1
先说说我们的实现
前端 hash 计算,切片,发送 hash ,切片数,每片大小到后端; 后端去检查每一片是否上传了,把没上传的切片序号,以及每片要上传到 minio 的地址返回。 前端根据后端返回,上传缺失的切片到 minio 服务器。 |
2
wunonglin 2022-08-24 20:26:31 +08:00
aws-s3-js 。没事不要把时间浪费在这种东西上
|
3
zzl22100048 2022-08-25 07:10:10 +08:00 via iPhone
minio 兼容 s3 直接用 s3 的 sdk
|
4
GMichael 2022-08-25 13:05:53 +08:00 via Android
最近刚好也做了一样的功能,实现跟一楼类似,只是我用的是本地存储,每一片上传上传完存到临时区检查下,全部上传完,合成一个大文件,存入数据库
|
5
firecode 2022-08-28 17:05:54 +08:00
前端直接上传到对象服务器,不需要应用后端
|