我正在开发CMS,它作为一个单一的实例运行,但服务于不同用户的多个网站。此CMS需要在存储中存储文件。每个网站既可以有几张图片,也可以有数千个对象。目前我们服务于大约5个网站,但计划有数百个,所以它必须很容易扩展。
现在我在考虑两种可能的方法。我想使用S3进行存储。
解决方案是为我的应用程序中的所有文件提供单一存储桶
解决方案是为每个网站提供一个存储桶。
根据亚马逊网络服务的文档,S3可以处理“几乎无限大的字节”,所以我认为第一种解决方案可以很好地工作,但我正在考虑其他方面:
每个网站有一个存储桶不是更干净吗?它对维护更好吗?
如果是这样,哪种解决方案更安全?是否有一些安全问题需要考虑?
是否同样适用于其他类似S3的服务,如Minio或DigitalOcean Spaces?
非常感谢你的回答。
发布于 2021-03-02 04:38:28
我会选择解决方案1。
从技术角度来看,您可以放入存储桶中的对象数量实际上是没有限制的- S3是为极端规模而构建的。对于5个网站来说,选项2可能听起来很诱人,但伸缩性不是很好。
每个区域或每个帐户有100个存储桶的软限制(即您可以提高它),这表明使用数百个存储桶可能是一种反模式。此外,保护100个水桶并不比保护一个水桶更容易。
关于安全性:如果需要的话,您可以在S3中使用非常精细的存储桶策略。如果需要,您还可以选择单独加密每个对象的方式。预签名URL等功能可以帮助您授予对S3中特定对象的临时访问权限。
如果您的目标是为最终用户提供静态内容,则必须使对象公开可读,使用前面提到的预签名URL,或者在您的存储桶前面将CloudFront设置为CDN。
我不知道这与类似S3的服务有什么关系。
https://stackoverflow.com/questions/66428604
复制相似问题