四年多前我就曾在「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由全台最用心的雲端顧問為了協助企業而開發的
#只要您願意付費我會很樂意為您服務