V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
这是一个专门讨论 idea 的地方。

每个人的时间,资源是有限的,有的时候你或许能够想到很多 idea,但是由于现实的限制,却并不是所有的 idea 都能够成为现实。

那这个时候,不妨可以把那些 idea 分享出来,启发别人。
huangmingyou
V2EX  ›  奇思妙想

网站上怎么加上 on the fly 压缩功能啊?

  •  
  •   huangmingyou · 2015-10-21 20:38:43 +08:00 · 2652 次点击
    这是一个创建于 3081 天前的主题,其中的信息可能已经有所发展或是发生改变。

    类似 360 云盘,随机选择多个文件,点下载,直接给你下载一个打包以后的压缩包?
    有现成的实现代码吗?
    我看 nginx 只能实现预压缩。

    8 条回复    2015-10-22 22:05:30 +08:00
    ryd994
        1
    ryd994  
       2015-10-21 21:05:55 +08:00
    naive 的做法就是写个 shell 脚本挂 cgi
    略高级一点的就 python/PHP
    welly
        2
    welly  
       2015-10-21 21:26:47 +08:00 via iPhone
    我只知道 OneDrive 一开始就用这个功能,多文件下载自压
    welly
        3
    welly  
       2015-10-21 21:27:33 +08:00 via iPhone
    忘了说 压缩包里面还有自动生成个 索引列表 txt
    XiaoxiaoPu
        4
    XiaoxiaoPu  
       2015-10-21 21:28:16 +08:00 via Android
    h5ai
    w88975
        5
    w88975  
       2015-10-21 21:40:41 +08:00
    现成的我不知道。
    不过思路大概是这样,收到请求,用你的后端语言 zip 压缩这几个文件,然后传回文件流,并在传输结束后删除该压缩文件。
    ryd994
        6
    ryd994  
       2015-10-21 23:37:00 +08:00
    @w88975 有 pipe ,不需要临时文件,直接输出到 stdout 就行
    huangmingyou
        7
    huangmingyou  
    OP
       2015-10-22 11:22:16 +08:00
    @XiaoxiaoPu h5ai 好用!
    jsq2627
        8
    jsq2627  
       2015-10-22 22:05:30 +08:00
    稍微了解一下 zip 的格式规范的话,是可以自己实现一个的。
    各种网盘打包下载的时候并没有压缩,只是单纯把文件打包了而已。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1190 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 18:15 · PVG 02:15 · LAX 11:15 · JFK 14:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.