文件上传下载文件,大家给点思路 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Dganzh
V2EX    编程

文件上传下载文件,大家给点思路

  •  
  •   Dganzh 2022-08-24 19:26:36 +08:00 2340 次点击
    这是一个创建于 1143 天前的主题,其中的信息可能已经有所发展或是发生改变。

    背景: 项目有比较多功能需要用到文件上传下载,文件最大有 1G 多,最坑的是客户可能网速受限只有 100KB/s ,客户使用的 web 端只能跟我们后端通信,不能跟外网通信。

    项目的这个情况,希望能支持分片上传、断点续传。

    今天初步有了个思路: 自己部署一套对象存储服务,由 web 端直接上传到对象存储系统,完成后由 web 端告知业务。 今天研究了 minIO ,发现需要自己实现分片上传下载,自己管理每个分片的传送情况。 想问问大家有没有更好的对象存储方案?

    没有好用的对象存储,直接自己存文件也行,这是兜底方案了。

    或者这个思路有没有需要改进的地方?有没有更好的思路?

    PS:后端用 Go

    5 条回复    2022-08-28 17:05:54 +08:00
    creanme
        1
    creanme  
       2022-08-24 20:05:06 +08:00   1
    先说说我们的实现

    前端 hash 计算,切片,发送 hash ,切片数,每片大小到后端;

    后端去检查每一片是否上传了,把没上传的切片序号,以及每片要上传到 minio 的地址返回。

    前端根据后端返回,上传缺失的切片到 minio 服务器。
    shakaraka
        2
    shakaraka  
    PRO
       2022-08-24 20:26:31 +08:00
    aws-s3-js 。没事不要把时间浪费在这种东西上
    zzl22100048
        3
    zzl22100048  
       2022-08-25 07:10:10 +08:00 via iPhone
    minio 兼容 s3 直接用 s3 的 sdk
    GMichael
        4
    GMichael  
       2022-08-25 13:05:53 +08:00 via Android
    最近刚好也做了一样的功能,实现跟一楼类似,只是我用的是本地存储,每一片上传上传完存到临时区检查下,全部上传完,合成一个大文件,存入数据库
    firecode
        5
    firecode  
       2022-08-28 17:05:54 +08:00
    前端直接上传到对象服务器,不需要应用后端
    关于   &nsp; 帮助文档     自助推广系统     博客     API     FAQ     Solana     1018 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 18:34 PVG 02:34 LAX 11:34 JFK 14:34
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86