使用 S3 以单个存储桶或多个存储桶的形式存储来自用户的图像上传以用于不同目的的最佳实践是什么?用例是 b2b 应用程序。
您可以在Amazon S3 存储桶中存储的数据量没有限制。因此,从理论上讲,您可以简单地将一个存储桶用于所有事情。(但是,如果您希望数据位于多个区域,则需要为每个区域使用单独的存储桶。
为了最好地回答您的问题,您需要考虑如何访问数据:
- 如果控制 IAM用户的访问,则为每个用户提供一个单独的文件夹很容易使用 IAM 策略元素进行访问控制:变量和标签
- 如果控制应用程序用户的访问,则用户将对应用程序进行身份验证,这将确定他们对对象的访问。然后,应用程序可以生成 Amazon S3 预签名 URL 以授予对特定对象的访问权限,因此按存储桶/文件夹分隔不太重要
- 如果数据由不同的管理员/开发人员管理,最好将数据保存在单独的存储桶中以简化访问权限(例如,将人力资源数据与客户数据分开(
基本上,只要您有充分的理由分离数据(例如测试与生产,不同的应用程序,不同的管理员(,就可以使用单独的存储桶。但是,对于单个应用程序,使用单个存储桶可能更有意义。
我相信它在性能和可用性方面是一样的。至于按目的拆分内容 - 只要内容拆分在不同的文件夹(路径(中,使用单个存储桶可能是可以的。 我们曾经有一个存储桶用于用户上传的内容,另一个存储桶用于自动生成的静态 (CSS/JS/IMG( 文件。