V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
hartlee
V2EX  ›  问与答

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

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

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

    命令行的话 curl 和 wget 都支持镜像网站功能,只要你页面结构容易解析就能下载下来一个文件夹。
    cheng6563
        15
    cheng6563  
       229 天前
    浏览器有 API 读写指定的一整个文件夹
    hartlee
        16
    hartlee  
    OP
       229 天前
    @lambdaq 谢谢,文件在 s3 的存储上,我是把文件的 http 地址给用户,让用户下载
    lambdaq
        17
    lambdaq  
       229 天前
    @hartlee 用户用什么下载?浏览器还是客户端?如果浏览器的话还是找前端包一个页面吧。基本可以实现点一个按钮,下载下来就是一个文件夹。
    hartlee
        18
    hartlee  
    OP
       229 天前
    @lambdaq 谢谢 是浏览器下载,求思路
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1024 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 20:20 · PVG 04:20 · LAX 12:20 · JFK 15:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.