Django,并将媒体文件上传到AWS S3,供应用程序中的用户查看



这可能是一个模糊的问题,但我正在开发一个用户可以上传文件(主要是视频和图片(的应用程序。用户可以创建组并将其图像上传到组中,组中的任何人都可以查看这些文件。我已经配置了AWS S3并可以工作,但是,AWS建议保留bucket私有

如果bucket是私有的,那么允许用户访问内容(可能是朋友通过预签名URL上传的?(

是否有必要将bucket设为私有。我看到教程,他们通常会公开bucket设置。这意味着任何拥有url的人都可以访问图像。假设用户1上传到xyz组。只有xyz的成员才能访问该映像。

为图像实现唯一标识符将使某人很难访问该图像,但并非不可能。这是更好的方法吗?还是让django在每次用户想要查看某个图像时生成签名URLS?我觉得这对于一个照片共享应用程序来说太过分了。

  1. 还有其他方法可以增加安全性吗

存储桶不一定需要是公共的。你可以使用url访问私人文件并保持其隐私。您可以查看s3的签名4安全性。您可以为带有params的文件生成一个url,params包含具有过期时间的访问密钥(每次密钥都不同(。只有具有url专用文件的访问密钥才可访问。如果默认ACL是私有的,DRF会自动在url中添加密钥。

相关内容

最新更新