2015-08-24 79 views

回答

11

截至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. 
+1

这也可以在控制台中看到。注意S3存储区是区域性的,因此检查放置存储区的任何区域都很重要。 – tedder42

+0

工作正常,但CloudWatch意味着一些延迟。我的备份存储桶花费了数小时才出现。 “1小时”窗口的可用性不会对我提供太多帮助,因为我在09h49编写了这个窗口,而我的最新可见日志从昨天07h03开始。我想使用详细的CW指标会有所帮助。 – Balmipour

+0

返回任何内容对我来说: { “数据点”:[], “标签”: “BucketSizeBytes” } 桶已经住了好几天。 – abrkn

1

作为替代方案,你可以尝试s3cmd,其中有一个命令类似Unix的。

4

我使用s3cmd du s3://BUCKET/ --human-readable查看S3中文件夹的大小。它以非常可读的形式给出了关于桶中所有对象及其大小的详细信息。

9

两种方式,

使用AWS CLI

AWS S3 LS --summarize --human可读--recursive S3://桶/文件夹/

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

AWS S3 LS --summarize --human可读--recursive S3://桶/文件夹

使用boto3 API

import boto3 

def get_folder_size(bucket, prefix): 
    total_size = 0 
    for obj in boto3.resource('s3').Bucket(bucket).objects.filter(Prefix=prefix): 
     total_size += obj.size 
    return total_size 
+0

仅适用于小桶,因为它为每个单个对象请求元数据。 +1在这种情况下 – geekQ

+1

不起作用,列出所有文件及其各自的大小,无论结尾是否有斜杠。 – Eduardo

0

s3cmd杜--human可读 - 递归s3:// Bucket_Name/

9

亚马逊改变了Web界面,所以现在你有“更多”菜单下的“获取大小”。

+0

这应该是唯一的答案。不需要命令行工具。 – Eduardo

-1

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

对于两种对象非常简单和快速(S3什么叫文件夹)或桶。

相关问题