如何方便让 http 下载一个文件夹? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
hartlee
V2EX    问与答

如何方便让 http 下载一个文件夹?

  •  
  •   hartlee 2024-03-28 10:27:6 +08:00 2361 次点击
    这是一个创建于 608 天前的主题,其中的信息可能已经有所发展或是发生改变。
    是不是只能把文件夹做成 zip ?
    如果和能提高解压效率呢?最好能秒解,linux 下
    18 条回复    2024-03-28 21:46:58 +08:00
    MidLinn
        1
    MidLinn  
    PRO
       2024-03-28 10:46:50 +08:00
    只打包,不压缩
    Yanlongli
        2
    Yanlongli  
       2024-03-28 10:55:03 +08:00
    没必要吧,你下载都费多少时间了。
    如果你的文件很小,那下载快,解压也会快,解压时间忽略不计。
    如果你的文件很大,那下载慢,解压比下载快,解压时间也可以忽略不计。

    只要控制压缩级别低点,别往死的压。
    hartlee
        3
    hartlee  
    OP
       2024-03-28 11:00:53 +08:00
    @MidLinn linux 下用 tar 好还是 zip 好?
    hartlee
        4
    hartlee  
    OP
       2024-03-28 11:01:18 +08:00
    @Yanlongli 谢谢 文件夹 5g 左右,想解压速度越快越好
    villivateur
        5
    villivateur  
       2024-03-28 11:04:55 +08:00
    可以参考一下某些网盘的实现,下载文件夹的时候,服务器端一边打包一边下载,注意,只打包,不压缩
    hartlee
        6
    hartlee  
    OP
       2024-03-28 11:14:19 +08:00
    压缩好搞,只是想解压特别快,最好能想本地 mv 一样的速度
    zim298247
        7
    zim298247  
       2024-03-28 12:05:21 +08:00
    @hartlee #6 tar
    ghjh
        8
    ghjh  
       2024-03-28 12:45:56 +08:00 via Android
    具体看你是自己传资料用,还是其他什么情况必须用 http
    如果自己写 http 接口的话,可以考虑边打包边回传数据。
    自己传资料的话倒是有很多现成的方法 scp rsync 啥的
    mumbler
        9
    mumbler  
       2024-03-28 12:50:45 +08:00
    做个 1M 下载器,打开下载 5G 文件
    byasm32
        10
    byasm32  
       2024-03-28 13:08:01 +08:00
    @hartlee #6 楼上说了好多次了 就打包不压缩 你好像还没听懂。。
    你可以试试电脑里用 winrar 压缩一个几 g 的文件夹 选择“仅存储“,压缩和解压都是几秒的事。(前提:SSD )
    hartlee
        11
    hartlee  
    OP
       2024-03-28 14:20:48 +08:00
    @byasm32
    对比了一下 tar 比 zip 快很多
    limbo0
        12
    limbo0  
       2024-03-28 16:00:35 +08:00
    非要 http 吗
    发送: tar cfz - . | nc {ip} 9995
    接受: nc -l 9995 | tar xfvz -
    hartlee
        13
    hartlee  
    OP
       2024-03-28 16:13:51 +08:00
    @limbo0 是的,让用户下载用,出了 tar 或者 zip ,有没有更简单的办法 ,比如直接给他 rename 或者 mv 一下,把文件夹强制转换为一个文件,然后再 rename 或者 mv 一下就行变成文件夹?
    tf2
        14
    tf2  
       2024-03-28 16:18:06 +08:00
    浏览器的话用 file blob api

    命令行的话 curl 和 wget 都支持镜像网站功能,只要你页面结构容易解析就能下载下来一个文件夹。
    cheng6563
        15
    cheng6563  
       2024-03-28 16:46:53 +08:00
    浏览器有 API 读写指定的一整个文件夹
    hartlee
        16
    hartlee  
    OP
       2024-03-28 17:23:36 +08:00
    @lambdaq 谢谢,文件在 s3 的存储上,我是把文件的 http 地址给用户,让用户下载
    tf2
        17
    tf2  
       2024-03-28 17:29:01 +08:00
    @hartlee 用户用什么下载?浏览器还是客户端?如果浏览器的话还是找前端包一个页面吧。基本可以实现点一个按钮,下载下来就是一个文件夹。
    hartlee
        18
    hartlee  
    OP
       2024-03-28 21:46:58 +08:00
    @lambdaq 谢谢 是浏览器下载,求思路
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5648 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 01:50 PVG 09:50 LAX 17:50 JFK 20:50
    Do have faith in what you're doing.
    ubao msn 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