AWS S3: 如何查看磁盘空间使用量

我有 AWS 账户。我使用 S3存储来自不同服务器的备份。问题是,在 AWS 控制台中是否有关于我的 S3云中使用了多少磁盘空间的信息?

148961 次浏览

AWS 控制台不会显示这个,但是您可以使用 水桶探险家云莓探险家来获取桶的总大小。两者都有免费版本。

注意: 这些产品仍然需要得到每个单独对象的大小,因此对于有许多对象的存储桶来说可能需要很长时间。

我使用 云龟得到单个桶的大小。如果 bucket 大小超过100Gb,那么显示大小将需要一些时间。 云龟是免费软件。

S3cmd 可以通过运行 s3cmd du来显示这一点,可以选择将 bucket 名作为参数传递。

在具有 python(带有 pip安装程序)、 grepawk的 Linux 机器上,安装 AWS CLI (用于 EC2、 S3和许多其他服务的命令行工具)

sudo pip install awscli

然后在主文件夹中创建一个 .awssecret文件,内容如下(根据需要调整密钥、密钥和区域) :

[default]
aws_access_key_id=<YOUR_KEY_HERE>
aws_secret_access_key=<YOUR_SECRET_KEY_HERE>
region=<AWS_REGION>

使该文件只对用户进行读写操作:

sudo chmod 600 .awssecret

并将其导出到您的环境中

 export AWS_CONFIG_FILE=/home/<your_name>/.awssecret

然后在终端中运行(这是一个单行命令,由 \分隔,便于阅读) :

aws s3 ls s3://<bucket_name>/foo/bar | \
grep -v -E "(Bucket: |Prefix: |LastWriteTime|^$|--)" | \
awk 'BEGIN {total=0}{total+=$3}END{print total/1024/1024" MB"}'
  • aws部分列出了 bucket (或可选的“子文件夹”)
  • grep部分删除(使用 -v)与正则表达式匹配的行(使用 -E)。^$代表空行,--代表 aws s3 ls输出中的分隔线
  • 最后一个 awk简单地将结果输出的第3列(大小以 KB 为单位)添加到 total,然后在结束时显示它

注意 此命令适用于当前的 bucket 或“文件夹”,而不是递归的

Yippe-对 AWS CLI 的更新允许您递归地通过桶..。

aws s3 ls s3://<bucketname> --recursive  | grep -v -E "(Bucket: |Prefix: |LastWriteTime|^$|--)" | awk 'BEGIN {total=0}{total+=$3}END{print total/1024/1024" MB"}'

基于@cudds 的回答:

function s3size()
{
for path in $*; do
size=$(aws s3 ls "s3://$path" --recursive | grep -v -E "(Bucket: |Prefix: |LastWriteTime|^$|--)" | awk 'BEGIN {total=0}{total+=$3}END{printf "%.2fGb\n", (total/1024/1024/1024)}')
echo "[s3://$path]=[$size]"
done
}


...


$ s3size bucket-a bucket-b/dir
[s3://bucket-a]=[24.04Gb]
[s3://bucket-b/dir]=[26.69Gb]

而且,赛博鸭可以方便地计算桶或文件夹的大小。

AWS CLI 现在支持接受 JMESPath表达式的 --query参数。

这意味着您可以使用 sum(Contents[].Size)list-objects给出的大小值求和,并像 length(Contents[])那样计数。

这可以使用官方的 AWS CLI 运行,如下所示,并且是在 二零一四年二月中引入的

 aws s3api list-objects --bucket BUCKETNAME --output json --query "[sum(Contents[].Size), length(Contents[])]"

除了克里斯托弗的回答。

如果需要计算版本化桶的总大小,请使用:

aws s3api list-object-versions --bucket BUCKETNAME --output json --query "[sum(Versions[].Size)]"

它同时计算最新版本和存档版本。

通过 API (aws cli 或 s4cmd)获得 大桶大小是相当慢的:

cat report.csv | awk -F, '{printf "%.2f GB %s %s \n", $7/(1024**3 )/24, $4, $2}' | sort -n

命令行工具通过运行:

aws s3 ls s3://mybucket --recursive --human-readable --summarize

云表还允许您为 S3存储桶创建指标。它通过大小和对象计数向您显示度量标准。 服务 > 管理工具 > 云表。选择 S3存储桶所在的区域,大小和对象计数指标将包含在这些可用指标中。

如果你喜欢人性化的用户界面,你也可以通过 S3客户端来实现。

我使用的是 交叉 FTP,它是免费和跨平台的,在那里你可以右键点击文件夹目录-> 选择“属性...”-> 点击“计算”按钮旁边的大小和瞧。

这是一个古老的问题,但是因为我正在寻找答案,所以我偶然发现了它。一些答案让我想起了我使用 S3浏览器来管理数据。你可以点击一个桶,点击属性,它会显示总数。很简单。我强烈推荐浏览器: https://s3browser.com/default.aspx?v=6-1-1&fam=x64

要使用 AWS 控制台查找 S3 bucket 的大小:

  1. 单击 S3存储桶名称
  2. 选择“度量”标签
  3. 您应该看到“桶指标”,默认情况下包括“总桶大小”

S3admin 是一个开源应用程序(UI) ,可以让你浏览桶,计算总大小,显示最大/最小的文件。它是为了快速了解你的水桶和它们的用途而量身定做的。

你问: AWS 控制台中关于我的 S3云上使用了多少磁盘空间的信息

我这样的 计费仪表板,并检查当前帐单中的 S3使用情况

它们提供的信息(MTD)以 Gb 为单位,小数点后6位,IOW 为 Kb 级。

它是按区域划分的,但是将它们相加(假设您使用了多个区域)是非常容易的。

顺便说一下: 您可能需要特定的 IAM 权限才能获得计费信息。

因此,我将在这里使用默认的仪表板添加来自 AWS 的 Storage Lens。

Https://docs.aws.amazon.com/amazons3/latest/userguide/storage-lens-optimize-storage.html?icmpid=docs_s3_hp_storage_lens_dashboards

它对于识别隐藏的存储成本非常有用,比如“不完整的多部分上传”

在你现在找到代码之前,它确实应该是回答这个问题的第一个调用端口。

根据您希望结果的精确程度,您可以使用 AWS 控制台、 AWS CLI 或 AWS S3存储透镜来查找桶的总大小或它所使用的空间。

方法1: 使用控制台

登录到 AWS 管理
打开 S3
点击“矩阵”标签
总桶大小矩阵显示您的桶的大小

注意: 请注意,此数据每24小时更新一次,因此不会有最新的更改。但好处是,它是免费的使用,您不收取任何 S3操作。

它看起来是这样的: 桶总大小

使用 AWS CLI

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

正如预期的那样,CLI 运行的是 这是命令,所以它会花费你的钱。所以根据你的需求使用。

如果你想检查存储镜头的方式也。你可以检查我的 翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳