表題の通り。awscliで、S3のあるパス配下にあるすべてのファイルの総容量を知りたい。
■ 環境
- awk
- awscli 1.11.47
■ s3
下記コマンドで取得することができる。
$ aws s3 ls s3://[bucket]/[path] --recursive | awk 'BEGIN {sum=0} {sum+=$3} END {print sum}'
肝となるところは”–recursive“で配下全てのファイルについて`ls`で詳細を取得しているところであろうか。`ls`の表記の中からファイル容量が3つ目の項目に表示されているので、この3つ目の項目を`awk`で総和計算している。
試しに自身のとある環境で行ってみたところ、下記のような結果を得られた。
$ aws s3 ls s3://[bucket]/[path] --recursive | awk 'BEGIN {sum=0} {sum+=$3} END {print sum}'
373689
$
表示はByteなので、`awk`の最後で`/1024`としていけば”KByte“や”MByte“で取得することも可能である。
以上。