python - 使用 S3 后端和用户权限提供媒体文件
问题描述
我很惊讶,但我在 Google 中找不到具有完全相同要求的人,所以我开始了。我在设计一个django项目,我知道敏感文档会被用户上传,所以需要引入某种权限控制机制(目前正在考虑使用JWT)。
从操作的角度来看,为了使我的项目无状态(计划在容器中运行它),我想将用户上传的文件存储在分布式对象存储系统(S3/minio)中。
这就是我迷路的地方。我知道在“常规”的 Django 生产环境中,用户上传的媒体文件往往会进入该./media
文件夹,并且网络服务器直接从那里提供它,无需任何身份验证。对我来说,这是有风险且不可接受的,因为共享的直接链接可能会被嗅探/泄露,未经授权的人可以访问敏感文档。
总结一下:
- 在 S3/minio 中/从 S3/minio 存储/提供用户上传的内容的公认做法是什么?
- 如何控制对这些文件的访问?
谢谢!