使用 S3 存储用户图像内容:单个还是多个存储桶?

Ton*_*ony 1 django saas amazon-s3 amazon-web-services

使用 S3 将用户上传的图像存储在单个存储桶或用于不同目的的多个存储桶中的最佳实践是什么?用例是 B2B 应用程序。

Joh*_*ein 7

Amazon S3 存储桶中可以存储的数据量没有限制。因此,从理论上讲,您可以简单地使用一个桶来处理所有事情。(但是,如果您想要多个区域中的数据,那么您需要为每个区域使用单独的存储桶。)

为了最好地回答您的问题,您需要考虑如何访问数据:

  • 如果控制IAM 用户的访问,则为每个用户提供一个单独的文件夹很容易使用IAM 策略元素(变量和标签)进行访问控制
  • 如果控制应用程序用户的访问,则用户将向应用程序进行身份验证,这将确定他们对对象的访问权限。然后,应用程序可以生成Amazon S3 预签名 URL以授予对特定对象的访问权限,因此按存储桶/文件夹进行分隔不太重要
  • 如果数据由不同的管理员/开发人员管理,最好将数据保存在单独的存储桶中以简化访问权限(例如,将 HR 数据与客户数据分开)

基本上,只要您有充分的理由分离数据(例如测试与产品、不同的应用程序、不同的管理员),就可以使用单独的存储桶。但是,对于单个应用程序,使用单个存储桶可能更有意义。