使用AWS CLI取得S3 Bucket的使用空間

四年多前我就曾在「AWS教學手冊」中提到AWS的CLI、API和SDK,當想要進行AWS更進階的應用時,就一定需要用到。

例如在AWS管理平台中沒有直接列出各個Bucket中的使用空間,此時就能透過CLI或SDK的方式去呼叫AWS的API來進行查詢,其實就會有多種方法可用。

 

方法一 (使用s3)

aws s3 ls s3://MyBucketName –recursive –human-readable –summarize

結果:

缺點:

#Bucket裡若有遇到中文名稱就會出現錯誤而無法計算,錯誤訊息如下圖
#若是Bucket中的Objects很多,會需要跑很久…

權限:

#要有S3的Read權限

 

方法二 (使用s3api)

aws s3api list-objects –bucket MyBucketName –query “[sum(Contents[].Size), length(Contents[])]”

結果:

缺點:

#若是Bucket中的Objects很多,一樣需要跑很久…

權限:

#要有S3的Read權限

 

方法三 (使用cloudwatch)

aws cloudwatch get-metric-statistics –namespace AWS/S3 –start-time 2018-10-29T00:00:00 –end-time 2018-10-29T23:00:00 –period 86400 –statistics Average –region us-east-1 –metric-name BucketSizeBytes –dimensions Name=BucketName,Value=MyBucketName Name=StorageType,Value=StandardStorage

結果:

缺點:

#要提供Bucket的Region
#要注意起始時間和結束時間

權限:

#要有CloudWatch的Read權限

要特別注意的事,在CLI執行的指令不一定會有相對應的SDK Class,像是在SDK裡就沒有s3api的Class可使用,而且環境的設置方式也會不同哦!

#不想自己麻煩可以直接用MyAWS來查
#MyAWS是好用又安全的AWS清查監看工具
#MyAWS由國內知名的銓鍇國際獨家代理銷售
#MyAWS由全台最用心的雲端顧問為了協助企業而開發的
#只要您願意付費我會很樂意為您服務

 

大中華區獨家代理 銓鍇國際

服務熱線: 02-77290880
服務信箱: aws@ckmates.com

原本「MyAWS」只有清查AWS服務的功能(A區功能),
後來加了Linux(B區功能)、Windows(C區功能)和NAS(D區功能)的服務,
我們發現在介紹MyAWS服務時會容易讓客戶感到混淆::
#聽到MyAWS以為是在介紹A區功能
#聽到MyAWS時會以為只有和AWS有關
因此「MyAWS」現已正式更名為: