2015-08-24 130 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什麼叫文件夾)或桶。

相關問題