loading
0.06D
V2EX  ›  问与答

flask 文件下载权限管理

  •  
  •   loading · Jun 11, 2015 via Android · 4171 views
    This topic created in 3989 days ago, the information mentioned may be changed or developed.
    目前在用 flask 写一个文件管理系统,涉及到文件的权限问题。

    能配合nginx吗?还是要 flask直接返回文件流?
    Supplement 1  ·  Jun 11, 2015
    目前我用的是 flask 内置的 send_from_directory(path,filename)
    Supplement 2  ·  Dec 4, 2015
    这个是阻塞的,大家注意
    4 replies    2015-06-11 17:28:46 +08:00
    leojoy710
        1
    leojoy710  
       Jun 11, 2015   ❤️ 1
    严格的权限控制的话 就程序返回

    不严格的 可以nginx做front 程序通过权限验证之后给个302什么的到对应的nginx的url
    不过这样的话 用户知道url了之后就能一直下载了...
    undeflife
        2
    undeflife  
       Jun 11, 2015   ❤️ 2
    程序处理权限然后 X-Accel-Redirect 交给nginx处理
    loading
        3
    loading  
    OP
       Jun 11, 2015 via Android
    @undeflife 这个似乎也没和当前会话有绑定,似乎也不太安全?
    undeflife
        4
    undeflife  
       Jun 11, 2015   ❤️ 1
    @loading

    response.headers['X-Accel-Redirect'] = real_download_url
    response.headers['Content-Type'] = "application/octet-stream"
    response.headers['Content-Disposition'] = "attachment; filename=aaa.zip"

    你真实的下载地址不管是直接访问磁盘文件还是云存储的下载url 这个是不会暴露给用户的.用户看到的还是请求到你flask的那个url 而且你同样可以使用Set-Cookie等,所以我想不到你指的不太安全是指得什么场景?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3361 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 59ms · UTC 11:23 · PVG 19:23 · LAX 04:23 · JFK 07:23
    ♥ Do have faith in what you're doing.