首页 > 解决方案 > 使用 S3 后端和用户权限提供媒体文件

问题描述

我很惊讶,但我在 Google 中找不到具有完全相同要求的人,所以我开始了。我在设计一个django项目,我知道敏感文档会被用户上传,所以需要引入某种权限控制机制(目前正在考虑使用JWT)。

从操作的角度来看,为了使我的项目无状态(计划在容器中运行它),我想将用户上传的文件存储在分布式对象存储系统(S3/minio)中。

这就是我迷路的地方。我知道在“常规”的 Django 生产环境中,用户上传的媒体文件往往会进入该./media文件夹,并且网络服务器直接从那里提供它,无需任何身份验证。对我来说,这是有风险且不可接受的,因为共享的直接链接可能会被嗅探/泄露,未经授权的人可以访问敏感文档。

总结一下

谢谢!

标签: pythondjangopython-3.xamazon-s3

解决方案


我认为您的搜索查询错误,因为您不知道要查找什么,这是一个 Django存储引擎

如果你需要提供自定义文件存储——一个常见的例子是在某个远程系统上存储文件——你可以通过定义一个自定义存储类来实现。

当然,这已经为您完成了

django-storages 是 Django 自定义存储后端的集合。

  • 亚马逊 S3
  • Apache Libcloud
  • Azure 存储
  • 数字海洋
  • 投递箱
  • FTP
  • 谷歌云存储 SFTP

推荐阅读