【问题标题】:deny direct access to file on S3拒绝直接访问 S3 上的文件
【发布时间】:2012-05-04 21:11:03
【问题描述】:

我正在构建一个具有以下行为的 django/s3 应用程序:

  1. 用户登录
  2. 用户上传文档 -> 文档转到 S3(最终在 DB 中使用 UID 名称和别名?)
  3. 用户可以下载文档

我正在寻找一种方法来拒绝其他用户(或者更糟糕的是,没有登录)查询和访问文件。我能找到的一种解决方案是:

  • 对于每个文件,页面都有指向处理脚本的链接
  • 点击链接时,视图会对其进行处理(检查用户是否已通过身份验证,确定 S3 中的正确文件)并重定向到该链接

这就够了吗?有没有更优雅的解决方案?

【问题讨论】:

    标签: django amazon-s3 access-control


    【解决方案1】:

    不要公开您的文件。这将防止未经授权的用户访问这些文件。

    然后在您的 Django 应用程序中,您可以生成带有查询字符串的 url,允许授权用户在有限的时间内访问 S3 文件。

    querystring request authentication 的亚马逊文档有更多信息。

    【讨论】:

    • -1 因为用户可以...复制这些密钥并再次获得访问权限。除非您为每个用户生成一个特定的密钥。
    • @DerekAdair 我认为您误解了答案。用户无权访问密钥,因此除了访问已签名的 URL 直到过期之前,无法对访问密钥执行任何操作。
    猜你喜欢
    • 1970-01-01
    • 2014-08-28
    • 1970-01-01
    • 2015-07-10
    • 2014-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多