拥有多个 s3 存储桶还是一个包含子文件夹的存储桶更好?
Is it better to have multiple s3 buckets or one bucket with sub folders?
每个类别的上传有多个 s3 存储桶,还是一个包含子文件夹的存储桶或一个链接的 s3 存储桶更好?我确信用户图片的数量会多于个人资料图片,并且每个存储桶有 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 上托管无限的静态网站,因为他们认为这可能会被滥用。但是你可以申请增加。
By default, you can create up to 100 buckets in each of your AWS
accounts. If you need additional buckets, you can increase your bucket
limit by submitting a service limit increase.
来源:http://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html
另外请注意,S3中实际上没有文件夹,只有一个平面文件结构:
Amazon S3 has a flat structure with no hierarchy like you would see in
a typical file system. However, for the sake of organizational
simplicity, the Amazon S3 console supports the folder concept as a
means of grouping objects. Amazon S3 does this by using key name
prefixes for objects.
来源:http://docs.aws.amazon.com/AmazonS3/latest/UG/FolderOperations.html
最后,5TB 限制仅适用于单个对象。对象数量或桶的总大小没有限制。
Q: How much data can I store?
The total volume of data and number of objects you can store are
unlimited.
来源:https://aws.amazon.com/s3/faqs/
此外,文档指出使用单个存储桶或多个存储桶之间没有性能差异,因此我猜选项 1 和 2 都适合您。
希望对您有所帮助。
多个桶的权限更简单
如果图像用于不同的用例,使用多个存储桶将简化权限模型,因为您可以授予 clients/users 存储桶级权限而不是目录级权限。
双向门和迁移
类似地,使用 2 个桶在未来会更加灵活。
1 到 2:
如果您从 1 个存储桶切换到 2 个存储桶,您现在必须将所有客户端移动到新设置。您将需要更新所有客户端的权限,这可能需要为您和客户端更改 IAM 策略。然后,您可以在过渡期间通过发布新的客户端库来转移您的客户端。
2比1:
如果您从 2 个存储桶切换到 1 个存储桶,您的客户将已经可以访问第 1 个存储桶。您需要做的就是更新客户端库,并在过渡期间将您的客户端移至其中。
*如果您没有客户端库,那么在这两种情况下都需要为客户端更改代码。
每个类别的上传有多个 s3 存储桶,还是一个包含子文件夹的存储桶或一个链接的 s3 存储桶更好?我确信用户图片的数量会多于个人资料图片,并且每个存储桶有 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 上托管无限的静态网站,因为他们认为这可能会被滥用。但是你可以申请增加。
By default, you can create up to 100 buckets in each of your AWS accounts. If you need additional buckets, you can increase your bucket limit by submitting a service limit increase.
来源:http://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html
另外请注意,S3中实际上没有文件夹,只有一个平面文件结构:
Amazon S3 has a flat structure with no hierarchy like you would see in a typical file system. However, for the sake of organizational simplicity, the Amazon S3 console supports the folder concept as a means of grouping objects. Amazon S3 does this by using key name prefixes for objects.
来源:http://docs.aws.amazon.com/AmazonS3/latest/UG/FolderOperations.html
最后,5TB 限制仅适用于单个对象。对象数量或桶的总大小没有限制。
Q: How much data can I store?
The total volume of data and number of objects you can store are unlimited.
来源:https://aws.amazon.com/s3/faqs/
此外,文档指出使用单个存储桶或多个存储桶之间没有性能差异,因此我猜选项 1 和 2 都适合您。
希望对您有所帮助。
多个桶的权限更简单
如果图像用于不同的用例,使用多个存储桶将简化权限模型,因为您可以授予 clients/users 存储桶级权限而不是目录级权限。
双向门和迁移
类似地,使用 2 个桶在未来会更加灵活。
1 到 2: 如果您从 1 个存储桶切换到 2 个存储桶,您现在必须将所有客户端移动到新设置。您将需要更新所有客户端的权限,这可能需要为您和客户端更改 IAM 策略。然后,您可以在过渡期间通过发布新的客户端库来转移您的客户端。
2比1: 如果您从 2 个存储桶切换到 1 个存储桶,您的客户将已经可以访问第 1 个存储桶。您需要做的就是更新客户端库,并在过渡期间将您的客户端移至其中。
*如果您没有客户端库,那么在这两种情况下都需要为客户端更改代码。