Django:密码保护照片网址?

标签 django django-models

我想从我的 Django 应用程序中提供安全照片。这些照片不供公众使用,我只希望登录用户能够查看它们。我不想依赖混淆的文件ID(给照片一个长数字的UUID)并指望它隐藏在我的媒体文件夹中。如何将照片安全地存储在数据库中的磁盘上,并且仅将其流式传输到经过身份验证的 session ?

最佳答案

使用 X-Sendfile header 告诉您的前端服务器实际服务器是什么文件。

@check_permissions
def image(request):
    response = HttpResponse(mimetype='image/png')    
    response['X-Sendfile'] = "/real/path/to/image.png"
    return response

这里是 related question .您还可以看到 real world implementation通过查看 Satchmo 如何为 DownloadableProduct 对象提供服务。

最后一点,nginx 和 lighttpd 使用 X-Accel-Redirect 和 X-LIGHTTPD-send-file 而不是 X-Sendfile。

关于Django:密码保护照片网址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2747053/

相关文章:

python - value_list django 是如何工作的?

django - 如何过滤多对多模型?

python - 如何在Django中将对象从 "default"DB复制到另一个具有相同结构的DB

django - POST django rest 框架后重定向

python - 如何预填充 Django ModelForm 字段

python - django 异构查询集代理模型

django - 模型 Django 中的 ID 字段

jquery - AJAX POST 中的 QueryDict 始终为空

python - Django 中所有模型的通用 app_label

Django Admin 外键,更详细