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

不爆露文件路径的情况下如何低成本提供下载

  •  
  •   v2hub · 39 天前 · 669 次点击
    这是一个创建于 39 天前的主题,其中的信息可能已经有所发展或是发生改变。

    描述:
    对外只提供 /down.php?k=abc.exe&token=abcdefg
    其中 abc.exe 是要下载的文件,后台会存储对应的文件路径。
    token 是本次下载的验证,一直在变的。

    文件存储再良心云的 cos 上,目前的方法是,用户访问 /down.php?k=abc.exe&token=abcdefg 的时候,服务器上从 cos 上读取这个文件并输出到用户浏览器中,提供下载。但是这样服务器的流量费和 cos 的流量费都要交,而且下载大文件的时候还影响了网站的速度,文件读取然后再输出到浏览器中消耗了 cpu 和内存。

    如何再能够保护文件真实路径的情况下,更低成本的解决这个下载的问题?

    7 回复  |  直到 2019-07-18 11:40:14 +08:00
        1
    oovveeaarr   39 天前   ♥ 1
    这个上有效期的防盗链不就可以解决了
        2
    zacharyjia   39 天前 via iPhone   ♥ 1
    oss 用私有 bucket,然后像楼上说的,每次用户访问你的 download.php 的时候,生成一个带有效期和签名的 oss 访问 url,直接跳转过去就行
        3
    dobelee   39 天前 via Android   ♥ 1
    1. 想保护真实路径就得做文件路径映射。
    2. 读取文件输出时少一点缓冲区节约内存。
    3. 文件下载不存在低成本。
        4
    shiny   39 天前   ♥ 1
    1. cos 走内网,不需要流量费
    2. Nginx Sendfile 可以节省下载文件时的 CPU 和内存资源
    3. 更成熟的方案就是 CDN URL 鉴权,可以解决服务器带宽占用问题。PHP 计算出鉴权信息,追加在 CDN URL 尾部,一段时间后过期。
        5
    oreoiot   39 天前 via iPhone
    谢谢辣鸡下载站,直接丢一个网盘链接??🤪🤪🤪
        6
    edgnoz   39 天前
    网盘啊
    用 mega
    速度还不错
        7
    v2hub   39 天前
    @oovveeaarr
    @zacharyjia
    我研究一下去

    @dobelee
    @shiny
    谢谢

    @oreoiot
    @edgnoz
    面向企业级的数据,不可能用第三方网盘的
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3708 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 39ms · UTC 09:56 · PVG 17:56 · LAX 02:56 · JFK 05:56
    ♥ Do have faith in what you're doing.