find456789
V2EX  ›  问与答

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

  •  
  •   find456789 · Dec 29, 2018 · 2489 views
    This topic created in 2781 days ago, the information mentioned may be changed or developed.

    我会 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 replies    2018-12-29 13:52:55 +08:00
    find456789
        2
    find456789  
    OP
       Dec 29, 2018
    @Lax

    谢谢 我研究研究
    crab
        3
    crab  
       Dec 29, 2018   ❤️ 1
    url 上参数加个过期时间,文件名 时间 密钥 哈希下。
    0ZXYDDu796nVCFxq
        4
    0ZXYDDu796nVCFxq  
       Dec 29, 2018 via Android   ❤️ 1
    配合 nginx 的模块,有效链接还是得自己写页面实现的。
    这个代码量,也就 50 行不到吧
    0ZXYDDu796nVCFxq
        5
    0ZXYDDu796nVCFxq  
       Dec 29, 2018 via Android   ❤️ 1
    补充下,时间并不可靠,最好把客户端 IP 作为计算数据
    Felldeadbird
        6
    Felldeadbird  
       Dec 29, 2018 via iPhone
    每次请求生成一个时间,token。每次下载前验证时间和 token 是否有效,有效才启动 py 下载。
    yytsjq
        7
    yytsjq  
       Dec 29, 2018
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   999 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 22:30 · PVG 06:30 · LAX 15:30 · JFK 18:30
    ♥ Do have faith in what you're doing.