Class 如何检查哪些文件未设置为";标准;AmazonS3存储桶上的存储类

Class 如何检查哪些文件未设置为";标准;AmazonS3存储桶上的存储类,class,amazon-s3,storage,bucket,Class,Amazon S3,Storage,Bucket,当使用AmazonAWS服务S3时,是否有一种简单的方法可以检查bucket中的所有文件是否都将其存储类设置为“Standard” 如果将任何文件设置为“标准-不经常访问”或“减少冗余”,我希望列出所有这些文件,以便将其存储类更改为“标准” --------编辑--------- 我创建了一个AWS CLI命令,可以执行上述操作。详情如下: aws s3api list-objects --bucket myBucketName --query 'Contents[?StorageClass !

当使用AmazonAWS服务S3时,是否有一种简单的方法可以检查bucket中的所有文件是否都将其存储类设置为“Standard”

如果将任何文件设置为“标准-不经常访问”或“减少冗余”,我希望列出所有这些文件,以便将其存储类更改为“标准”

--------编辑---------

我创建了一个AWS CLI命令,可以执行上述操作。详情如下:

aws s3api list-objects --bucket myBucketName --query 'Contents[?StorageClass != `STANDARD`][].{Key:Key}'
(标准应该用`环绕,但由于某些原因它们不会显示。)


但这让我想到,在一个拥有数百万文件的巨大存储桶中,这种请求将花费多少成本。如果上面的行返回5个文件,那么我会对5个请求收费,还是会对搜索中访问的每个文件收费?

您最好的选择是在S3上使用新的。如果您转到AWS webconsole并浏览到S3 bucket management页面(如果需要,您需要使用新样式控制台)。在这里,您可以选择库存并配置要导出的内容。您可以在这里轻松地选择存储类


注意:您要导出的存储桶需要具有接收库存导出的正确权限。您可以在中找到bucket策略的示例。

您的最佳选择是在S3上使用新的bucket策略。如果您转到AWS webconsole并浏览到S3 bucket management页面(如果需要,您需要使用新样式控制台)。在这里,您可以选择库存并配置要导出的内容。您可以在这里轻松地选择存储类

注意:您要导出的存储桶需要具有接收库存导出的正确权限。您可以在中找到bucket策略的示例

但这让我想到,在一个拥有数百万文件的巨大存储桶中,这种请求将花费多少成本。如果上面的行返回5个文件,那么我会对5个请求收费,还是会对搜索中访问的每个文件收费

这将在客户端进行过滤。您将为每个ListObjects请求付费,默认情况下,在
aws s3api list objects
下,每次调用都会返回1000个对象。在成本最低的地区,如us-east-1和us-east-2,每1000个列表请求的成本为0.005美元。(不是每个对象,每个请求。)由于每个请求返回1000个对象,因此遍历2000000个对象的成本大约为0.01美元,这似乎相当合理。其他一些地区则略高一些

在与bucket位于同一区域的EC2内运行时,您将不会支付任何相关的数据传输费用,并且由于延迟非常低,您将获得最佳性能。我最近做的Bemchmark表明,你应该能够在10分钟内扫描一百万个物体。它相对较快,因为您只需迭代列表,因为存储类是对象列表中返回的属性之一

如果从
STANDARD_IA
切换对象,请务必谨慎,因为如果对象在
STANDARD_IA
类中至少30天之前移出
STANDARD_IA
,则仍将收取适用于该类中所有对象的30天最低存储费用

但这让我想到,在一个拥有数百万文件的巨大存储桶中,这种请求将花费多少成本。如果上面的行返回5个文件,那么我会对5个请求收费,还是会对搜索中访问的每个文件收费

这将在客户端进行过滤。您将为每个ListObjects请求付费,默认情况下,在
aws s3api list objects
下,每次调用都会返回1000个对象。在成本最低的地区,如us-east-1和us-east-2,每1000个列表请求的成本为0.005美元。(不是每个对象,每个请求。)由于每个请求返回1000个对象,因此遍历2000000个对象的成本大约为0.01美元,这似乎相当合理。其他一些地区则略高一些

在与bucket位于同一区域的EC2内运行时,您将不会支付任何相关的数据传输费用,并且由于延迟非常低,您将获得最佳性能。我最近做的Bemchmark表明,你应该能够在10分钟内扫描一百万个物体。它相对较快,因为您只需迭代列表,因为存储类是对象列表中返回的属性之一


如果从
STANDARD_IA
切换对象,请务必谨慎,因为如果对象在
STANDARD_IA
类中至少30天之前移出
STANDARD_IA
,您仍将收取适用于该类中所有对象的30天最低存储费用。

以下操作对我来说很好

aws s3api列表对象--bucket XXXX--query'Contents[?StorageClass
!=`STANDARD`.[Key,StorageClass]'--输出文本>XXXX.txt

以下内容对我来说很好

aws s3api列表对象--bucket XXXX--query'Contents[?StorageClass
!=`STANDARD`.[Key,StorageClass]'--output text>XXXX.txt

我可以更改我所有文件的存储类,但我想做的是制作一个脚本,可以显示所有未设置为“STANDARD”的文件的列表。Fx检查是否有人错误地添加了存储类设置为“减少冗余”的新文件。Perhabs Through AWS CLI?您可以使用AWS CLI,但这将非常昂贵,具体取决于存储桶中对象的数量。如果您可以等待24-48小时,那么使用bucket Inventory检索列表要便宜得多(系数1000)。我可以更改所有文件的存储类,但我想做的是制作一个脚本,可以显示未设置为“标准”的所有文件的列表。Fx检查是否有人错误地添加了存储类设置为“减少冗余”的新文件。您可以使用AWS CLI,但是