S3 存储桶组成

S3 buckets composition

我正在开发作为单个实例运行但服务于不同用户的多个网站的 CMS。此 CMS 需要将文件存储在存储器中。每个网站可以有几张图片,也可以有数千个对象。目前我们服务大约 5 个网站,但计划有数百个,因此它必须易于扩展。

现在我正在考虑两种可能的方法。我想用S3存储。

  1. 解决方案是为我的应用程序中的所有文件设置一个存储桶
  2. 解决方案是为每个网站设置一个存储桶。

根据 AWS 文档,S3 可以处理“几乎无限量的字节”,所以我认为第一个解决方案可以很好地工作,但我正在考虑其他方面:

  1. 每个网站一个桶不就更干净了吗?是不是更好保养?
  2. 如果是,哪种解决方案更安全?是否有一些安全问题需要关注?
  3. 是否同样适用于其他类似 S3 的服务,如 Minio 或 DigitalOcean Spaces?

非常感谢您的回答。

我会选择解决方案 1。

从技术角度来看,您可以放入存储桶中的对象数量实际上没有限制 - S3 专为极端规模而构建。对于 5 个网站,选项 2 听起来很诱人,但扩展性不是很好。

每个区域或每个帐户有 100 个存储桶的软限制(即您可以提高它),这表明使用数百个存储桶可能是一种反模式。此外,保护 100 个桶并不比保护一个桶容易。

关于安全性: 如果需要,您可以在 S3 中使用非常精细的存储桶策略。如果需要,您还可以选择要如何单独加密每个对象。预签名 URL 等功能可以帮助您授予对 S3 中特定对象的临时访问权限。

如果您的目标是向最终用户提供静态内容,则必须使对象公开可读、使用上述预签名 URL 或将 CloudFront 设置为存储桶前面的 CDN。

我不知道这与类似 S3 的服务有什么关系。