每个上传类别有多个 s3 存储桶还是一个带有子文件夹的存储桶或一个链接的 s3 存储桶更好?我确信用户图片的数量会比 proille-pics 的数量多,并且每个存储桶有 5TB 的限制,每个帐户有 100 个存储桶。我正在使用 aws boto 库和https://github.com/amol-/depot
我的文件夹采用以下哪种方式的结构?
/app_bucket
/profile-pic-folder
/user-images-folder
OR
profile-pic-bucket
user-images-bucket
OR
/app_bucket_1
/app_bucket_2
最后一个意味着它实际上是一个 10TB 的存储桶,当 bucket_1 中的文件超过 5TB 时,会创建一个新的存储桶。但是所有上传的内容都会像在一个存储桶中一样被读取。还是有更好的方法来做我想做的事情?非常感谢!
我不确定这是否正确...每个帐户 100 个存储桶?
https://www.reddit.com/r/aws/comments/28vbjs/requesting_increase_in_number_of_s3_buckets/
是的,每个帐户实际上有 100 个存储桶限制。我在 AWS 活动中向架构师询问了原因。他说这是为了避免人们在 S3 上托管无限的静态网站,因为他们认为这可能会被滥用。但是你可以申请加价。
默认情况下,您最多可以在每个 AWS 账户中创建 100 个存储桶。如果您需要额外的存储桶,您可以通过提交服务限制增加来增加您的存储桶限制。
来源:http://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html
另外,请注意,S3 中实际上没有文件夹,只是一个平面文件结构:
Amazon S3 具有扁平结构,没有您在典型文件系统中看到的层次结构。但是,为了组织简单,Amazon S3 控制台支持将文件夹概念作为对对象进行分组的一种方式。 Amazon S3 通过使用对象的键名前缀来做到这一点。
来源:http://docs.aws.amazon.com/AmazonS3/latest/UG/FolderOperations.html
最后,5TB 限制仅适用于单个对象。桶的对象数量或总大小没有限制。
问:我可以存储多少数据?您可以存储的数据总量和对象数量不受限制。
来源:https://aws.amazon.com/s3/faqs/
此外,文档指出使用单个存储桶或多个存储桶之间没有性能差异,因此我猜选项 1 和 2 都适合您。
希望这可以帮助。
使用多个存储桶更简单的权限
如果图像用于不同的用例,使用多个存储桶将简化权限模型,因为您可以授予客户端/用户存储桶级别的权限而不是目录级别的权限。
2 向门和迁移
类似地,使用 2 个存储桶在未来会更加灵活。
到 2:如果您从 1 个存储桶切换到 2 个存储桶,您现在必须将所有客户端移动到新设置。您将需要更新所有客户端的权限,这可能需要您和客户端都更改 IAM 策略。然后,您可以通过在过渡期间发布新的客户端库来转移您的客户。
2 到 1:如果您从 2 个存储桶切换到 1 个存储桶,您的客户端将已经可以访问 1 个存储桶。您需要做的就是更新客户端库并在过渡期间将您的客户端移到其中。
*如果您没有客户端库,则客户端在这两种情况下都需要更改代码。