如何查找AWS S3存储桶或文件夹的总大小?

Ver*_*ler 24 amazon-s3 amazon-web-services

亚马逊是否提供了一种简单的方法来查看我的S3存储桶或文件夹使用了多少存储空间?这是我可以计算我的成本等.

小智 21

两种方式,

使用aws cli

aws s3 ls --summarize --human-readable --recursive s3:// bucket/folder /

如果我们最后省略'/',它将获得以您的文件夹名称开头的所有文件夹,并给出所有文件夹的总大小.

aws s3 ls --summarize --human-readable --recursive s3:// bucket/folder

使用boto3 api

aws s3 ls --summarize --human-readable --recursive s3://bucket/folder/*
Run Code Online (Sandbox Code Playgroud)

  • 不起作用,列出所有文件及其各自的大小,而不管尾部斜杠. (10认同)
  • 仅适用于小存储桶,因为它为每个单个对象请求元数据。+1 对于这种情况 (4认同)
  • 警告:这将向 S3 发出列表请求。如果您要处理数百万个小物体,这可能会很快变得昂贵。目前 1k 个请求的价格为 0.005 美元,您可以想象如果您有数十亿个对象来收集大小元数据,这会产生什么效果。使用控制台 UI 中的“获取大小”按钮可能会产生类似的费用。 (4认同)
  • aws s3 ls s3://bucket_name/folder/ --summarize -- human-可读 --recursive (选项根据当前文档) (2认同)

小智 21

亚马逊已经更改了Web界面,因此现在您可以在"更多"菜单下获得"获取大小".

  • @Eduardo当你比较200个独立桶的大小时,你告诉我你对这个评论的看法! (5认同)
  • @kevlarr我需要在S3中花费太多时间后修改我的语句...界面一次只有300个对象,所以如果你有超过300个根级对象,你需要逐页浏览并添加它们 (3认同)
  • 这不是只适用于选定的文件而不是整个存储桶吗? (2认同)

Ver*_*ler 17

截至2015年7月28日,您可以通过CloudWatch获取此信息.

aws cloudwatch get-metric-statistics --namespace AWS/S3 --start-time 2015-07-15T10:00:00 
--end-time 2015-07-31T01:00:00 --period 86400 --statistics Average --region us-east-1 
--metric-name BucketSizeBytes --dimensions Name=BucketName,Value=myBucketNameGoesHere 
Name=StorageType,Value=StandardStorage


Important: You must specify both StorageType and BucketName in the dimensions argument otherwise you will get no results.
Run Code Online (Sandbox Code Playgroud)

  • 这在控制台中也可见。注意 S3 存储桶是区域性的,因此检查您放置存储桶的任何区域非常重要。 (2认同)

dzo*_*ona 16

2021 年更新的答案:)

在您的 AWS 控制台中,在 S3 存储桶下,找到存储桶或其中的文件夹,然后单击Calculate total size

在此处输入图片说明

  • 它要多少钱?它与“aws cli”调用相同吗? (7认同)
  • 注意;如果启用版本控制并且存在版本,或者存在不完整的分段上传,这些将不会包含在总大小中:请参阅[知识中心帖子](https://repost.aws/knowledge-center/s3 -cli-cloudwatch-metric-discrepancy)。为什么这些文件大小不包含在内,甚至 UI 中也没有提到,我无法理解 (2认同)

Jim*_*nas 11

调整为 2020 年的答案:进入您的存储桶,选择所有文件夹、文件,然后单击“操作”->“获取总大小”在此处输入图片说明


Sna*_*hot 9

使用 AWS Web 控制台和 Cloudwatch:

  1. 转到 CloudWatch
  2. 点击屏幕左侧的指标
  3. 单击 S3
  4. 单击存储
  5. 您将看到所有存储桶的列表。请注意,这里有两个可能的混淆点:

    一种。您只会看到存储桶中至少有一个对象的存储桶。
    湾 您可能看不到在不同区域创建的存储桶,您可能需要使用右上角的下拉菜单切换区域以查看其他存储桶

  6. 在说明“搜索任何指标、维度或资源 ID”的区域中搜索“StandardStorage”一词

  7. 选择要计算总大小的存储桶(或所有带有“全部”字样下方左侧复选框的存储桶)
  8. 从屏幕右上角的时间栏中选择至少 3d(3 天)或更长时间

您现在将看到一个图表,显示所选时间段内所有选定存储区列表的每日(或其他单位)大小。


小智 7

最新且最简单的方法是转到“Metric”选项卡。它可以清楚地了解桶的大小和桶内对象的数量。

指标


Vla*_*hka 6

如果有人需要字节精度:

aws s3 ls --summarize --recursive s3://path | tail -1 | awk '{print $3}'
Run Code Online (Sandbox Code Playgroud)


小智 5

s3cmd du s3://BUCKET/ --human-readable用来查看S3中文件夹的大小。它以易于阅读的形式提供了有关存储桶中的全部对象及其大小的详细信息。