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

有什么开源的方案实现 文件下载 URL 鉴权 吗?

  •  
  •   find456789 · 2018-12-29 13:28:15 +08:00 · 1998 次点击
    这是一个创建于 2150 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我会 python 语言

    我的需求是, 要存一些文件,每个文件大小 100m 左右

    会有用户下载这个文件, 下载的频率并不高, 并发很低, 可能 30 分钟,提交一个下载请求

    但是 cdn 都是按照流量收费的, 虽然我的并发不高, 但时间长了, 一算下来,流量费很高

    我刚好有一台闲置的 5m 带宽的良心云机器, 所以想用来搭建下载服务器

    但是我不想泄漏文件的原始下载地址, 希望可以通过 Url 鉴权的方式,控制每个临时链接的失效时间

    想实现类似阿里云那样的 url 鉴权 ( https://help.aliyun.com/document_detail/57007.html

    sstring = "URI-timestamp-rand-uid-PrivateKey" 
    
    md5hash = md5sum(sstring)
    

    请问,有什么开源的 类似的方案吗?

    如果没有的话, 我应该如何自己去实现呢

    因为我对这方面完全不懂,所以来问问

    跪求大神指点, 哪怕给出几个关键词

    谢谢

    7 条回复    2018-12-29 13:52:55 +08:00
    Lax
        1
    Lax  
       2018-12-29 13:41:02 +08:00   ❤️ 1
    find456789
        2
    find456789  
    OP
       2018-12-29 13:42:38 +08:00
    @Lax

    谢谢 我研究研究
    crab
        3
    crab  
       2018-12-29 13:42:49 +08:00   ❤️ 1
    url 上参数加个过期时间,文件名 时间 密钥 哈希下。
    0ZXYDDu796nVCFxq
        4
    0ZXYDDu796nVCFxq  
       2018-12-29 13:45:08 +08:00 via Android   ❤️ 1
    配合 nginx 的模块,有效链接还是得自己写页面实现的。
    这个代码量,也就 50 行不到吧
    0ZXYDDu796nVCFxq
        5
    0ZXYDDu796nVCFxq  
       2018-12-29 13:46:09 +08:00 via Android   ❤️ 1
    补充下,时间并不可靠,最好把客户端 IP 作为计算数据
    Felldeadbird
        6
    Felldeadbird  
       2018-12-29 13:51:04 +08:00 via iPhone
    每次请求生成一个时间,token。每次下载前验证时间和 token 是否有效,有效才启动 py 下载。
    yytsjq
        7
    yytsjq  
       2018-12-29 13:52:55 +08:00
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   6222 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 02:20 · PVG 10:20 · LAX 18:20 · JFK 21:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.