当前位置: 首页 > 知识库问答 >
问题:

多个s3存储桶还是一个带有子文件夹的存储桶更好?

太叔京
2023-03-14

每个上传类别有多个s3桶,还是一个带子文件夹的桶,还是一个链接的s3桶更好?我确信html" target="_blank">用户图像会比剖析图片多,每个桶有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/

共有2个答案

秦琦
2023-03-14

如果图像用于不同的用例,使用多个bucket将简化权限模型,因为您可以为客户/用户提供bucket级别的权限,而不是目录级别的权限。

类似地,使用两个桶在路上更灵活。

1到2:如果您从1桶切换到2桶,您现在必须将所有客户端移动到新设置。您需要更新所有客户端的权限,这可能需要您和客户端的IAM策略更改。然后您可以在过渡期间释放一个新的客户端库来移动您的客户端。

2到1:如果您从2个桶切换到1个桶,您的客户端将已经可以访问1个桶。您所需要做的就是更新客户端库,并在过渡期内将您的客户端移动到它上面。

*如果您没有客户端库,那么在这两种情况下,客户端都需要更改代码

公羊玉泽
2023-03-14

是的,每个账户实际上有100桶的限制。我在AWS活动中向一位建筑师询问了原因。他说,这是为了避免人们在S3上拥有无限的静态网站,因为他们认为这可能被滥用。但你可以申请加薪。

默认情况下,您可以在每个AWS帐户中创建多达100个桶。如果您需要额外的桶,您可以通过提交服务限制增加来增加桶限制。

资料来源:http://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html

另外,请注意,S3中实际上没有文件夹,只有一个平面文件结构:

AmazonS3是一个扁平的结构,没有像典型文件系统中那样的层次结构。然而,为了简化组织,AmazonS3控制台支持文件夹概念,将其作为对象分组的一种方式。AmazonS3通过使用对象的键名前缀来实现这一点。

资料来源:http://docs.aws.amazon.com/AmazonS3/latest/UG/FolderOperations.html

最后,5TB限制只适用于单个对象。对对象的数量或桶的总大小没有限制。

问:我可以存储多少数据

您可以存储的数据总量和对象数量是无限的。

来源:https://aws.amazon.com/s3/faqs/

此外,文档中还指出,使用单个存储桶或多个存储桶之间没有性能差异,因此我想选项1和2都适合您。

希望这有帮助。

 类似资料:
  • 问题内容: 我有一个s3结构,如下所示: 我需要做的就是给定s3bucket的名称和一个第一级密钥的条目,我需要位于第一级密钥下的所有第二级密钥的名称。因此,从本质上来说,如果我们将其视为一个文件夹,则将获得的名称(即)和其子文件夹之一的名称,我想列出其中的所有文件夹。虽然只是名称,而不是完整的路径。 有人可以指出如何使用亚马逊的Java SDK在Java中做到这一点吗? 谢谢 问题答案: 我做了

  • 有没有一种方法可以将文件列表从一个S3存储桶复制到另一个存储桶?两个S3存储桶都在同一个AWS帐户中。我可以使用aws cli命令一次复制一个文件: 然而,我有1000份文件要复制。我不想复制源存储桶中的所有文件,因此无法使用sync命令。有没有一种方法可以用需要复制的文件名列表来调用一个文件,从而自动化这个过程?

  • 我正在尝试使用Node将文件从AWS S3存储桶复制到另一个存储桶。问题是,如果文件名没有空格,例如:“abc.csv”,它就可以正常工作。但如果我要复制到的文件名中有空格,例如:“abc xyz.csv”。它抛出了下面的错误。 “指定的密钥不存在。”“NoSuchKey:指定的密钥不存在。应请求。extractError(d:\Projects\Other\testproject\s3filet

  • 我有2个AWS帐户。我试图复制文件从帐户1到帐户2在桶2在美国西部2地区。我有所有必要的IAM政策,相同的凭据适用于两个帐户。我使用python boto3库。 如图所示,复制函数在指向目标帐户2/us-west-2的客户端对象上执行。它是如何获取帐户1/us-east1中的源文件的?我应该提供作为复制函数的输入吗?

  • 我有一个处理CSV文件并返回一些分析的应用程序。我的用户将文件存储在GCP云存储桶中,我希望他们能够向我传递一个存储桶URL和一些身份验证令牌/签名URL,然后应用程序将下载文件并根据需要解析它们。 阅读GCP留档时,我遇到了以下gsutil命令: 这正是我所需要的,但是我正在通过一些REST API HTTP请求寻找同样的功能。我肯定有这样的东西存在,但似乎找不到。或者,如果我可以“列出”一个存