限制访问Django / Nginx中的静态文件
我正在构建一个允许用户生成文档然后下载它们的系统.文档是PDF(并不是为了这个问题而重要),当它们生成时,我将它们存储在我的本地文件系统上,运行web服务器时使用的是uuid文件名 c7d43358-7532-4812-b828-b10b26694f0f.pdf 但我知道“通过默默无闻的安全”不是正确的解决方案…… 我希望尽可能限制每个帐户对文件的访问.我认为我可以做的一件事是将它们上传到S3并提供一个签名的URL,但我想尽可能避免这种情况. 我正在使用Nginx / Django / Gunicorn / EC2 / S3 还有什么其他解决方案? 如何在视图级别强制执行user == owner,阻止访问文件,将它们存储为FileFields,以及仅在满足条件时检索文件.
例如您可以在视图上使用@login_required decorator以仅在登录时允许访问.可以使用request.user来检查该文件的所有者. Django documentation的用户身份验证部分可能对此有所帮助. 正如你所提到的另一个选择是通过S3本身,在Django中生成url,它有一个查询字符串,允许经过身份验证的用户访问下载具有时间限制的特定s3对象.有关详细信息可以在s3 documentation找到.类似的问题已经在here之前提出过SO. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |