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

时间:2012-01-23 17:31:29

标签: amazon-s3 amazon-web-services

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

18 个答案:

答案 0 :(得分:91)

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"}'

答案 1 :(得分:74)

我不确定这个问题何时被添加到AWSCLI,因为原始问题是3年前,但命令行工具通过运行提供了一个很好的摘要:

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

答案 2 :(得分:36)

s3cmd可以通过运行s3cmd du向您展示,可选择将存储桶名称作为参数传递。

答案 3 :(得分:32)

使用AWS控制台查找S3存储桶的大小:

  1. 单击S3存储桶名称
  2. 选择“管理”标签
  3. 点击“指标”导航按钮
  4. 默认情况下,您应该看到存储桶的存储指标
  5. 希望这有帮助。

答案 4 :(得分:25)

AWS CLI现在支持--query参数,该参数带有JMESPath个表达式。

这意味着您可以使用list-objectssum(Contents[].Size)给出的大小值求和,并计算为length(Contents[])

这可以使用如下的官方AWS CLI运行,并在Feb 2014

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

答案 5 :(得分:7)

在具有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部分列出了存储桶(或可选的“子文件夹”)
  • grep部分删除(使用-v)与正则表达式匹配的行(使用-E)。 ^$用于空行,--用于aws s3 ls
  • 输出中的分隔线
  • 最后awk只需将total添加到结果输出的第三列(大小以KB为单位),然后在结尾显示

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

答案 6 :(得分:6)

请参阅https://serverfault.com/questions/84815/how-can-i-get-the-size-of-an-amazon-s3-bucket

Vic回答......

<?php
if (!class_exists('S3')) require_once 'S3.php';

// Instantiate the class
$s3 = new S3('accessKeyId', 'secretAccessKey');
S3::$useSSL = false;

// List your buckets:
echo "S3::listBuckets(): ";
echo '<pre>' . print_r($s3->listBuckets(), 1). '</pre>';

$totalSize = 0;
$objects = $s3->getBucket('name-of-your-bucket');
foreach ($objects as $name => $val) {
    // If you want to get the size of a particular directory, you can do
    // only that.
    // if (strpos($name, 'directory/sub-directory') !== false)
    $totalSize += $val['size'];
}

echo ($totalSize / 1024 / 1024 / 1024) . ' GB';
?>

答案 7 :(得分:6)

Cloud watch还允许您为S3存储桶创建指标。它按大小和对象计数显示指标。 服务&GT;管理工具&gt;云手表。选择S3存储桶所在的区域,大小和对象计数指标将在这些可用指标中。

答案 8 :(得分:5)

通过API(aws cli或s4cmd)获取大桶大小非常慢。这是我的HowTo explaining how to parse S3 Usage Report 使用bash one liner:

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

答案 9 :(得分:4)

除了克里斯托弗的回答。

如果您需要计算版本化存储桶的总大小:

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

它包括最新版本和存档版本。

答案 10 :(得分:1)

AWS控制台不会向您显示此信息,但您可以使用Bucket ExplorerCloudberry Explorer来获取存储分区的总大小。两者都有免费版本。

注意:这些产品仍然需要获得每个对象的大小,因此对于包含大量对象的存储桶可能需要很长时间。

答案 11 :(得分:1)

这是一个旧的询问,但是因为我正在寻找答案,所以我遇到了它。一些答案让我记得我使用S3 Browser来管理数据。您可以单击一个存储桶并点击属性,它会显示总数。很简单。我强烈推荐浏览器:https://s3browser.com/default.aspx?v=6-1-1&fam=x64

答案 12 :(得分:1)

Mini John的答案完全适合我!真棒......不得不添加

--region eu-west-1 

来自欧洲

答案 13 :(得分:1)

基于@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]

此外,Cyberduck可以方便地计算存储桶或文件夹的大小。

答案 14 :(得分:0)

嗯,如果您喜欢人性化的UI,也可以通过S3客户端来完成。

我使用免费且跨平台的CrossFTP,您可以右键单击文件夹目录 - &gt;选择“属性...” - &gt;点击尺寸旁边的“计算”按钮,然后点击。

答案 15 :(得分:0)

s3admin是一个开源应用程序(UI),可让您浏览存储桶,计算总大小,显示最大/最小文件。专为快速了解您的存储桶及其使用情况而设计。

答案 16 :(得分:0)

您问:有关AWS控制台中S3云上正在使用多少磁盘空间的信息

我选择 Billing Dashboard(计费仪表板)并检查当前账单中的S3使用情况

它们为您提供信息-MTD-以Gb到6个小数点IOW到Kb级别。

按地区细分,但是将它们加起来(假设您使用多个地区)就很容易了。

BTW:您可能需要特定的IAM权限才能获取帐单信息。

答案 17 :(得分:-2)

我使用Cloud Turtle来获取各个存储桶的大小。如果铲斗尺寸超过> 100 Gb,则显示尺寸需要一些时间。 云龟是免费软件。