Çözüm 1
Bu yüzden aşağıdaki senaryo ile çözdüm. Başlangıçta, farkında olmadığım daha kolay bir yol olması durumunda soruyu gönderdim.
#!/bin/bash
aws_profile=('profile1' 'profile2' 'profile3');
#loop AWS profiles
for i in "${aws_profile[@]}"; do
echo "${i}"
buckets=($(aws --profile "${i}" --region your_region s3 ls s3:// --recursive | awk '{print $3}'))
#loop S3 buckets
for j in "${buckets[@]}"; do
echo "${j}"
aws --profile "${i}" --region your_region s3 ls s3://"${j}" --recursive --human-readable --summarize | awk END'{print}'
done
done
Çözüm 2
Kullanılması Tablolarını içinde CloudWatch AWS konsolda.
Ardından tüm S3 gruplarını belirtebilir ve depolama boyutu metriklerini göstermek için sayı istatistiklerini ekleyebilirsiniz.
Bu size çok sayıda API çağrısına mal olmayacak ve s3 kovaların boyutuna bağlı olarak önemli ölçüde daha hızlı olabilir (çok büyük kovalarda boyut elde etmek biraz zaman alır).
Karar
Her AWS hesabında Gösterge Tablosu ( Çözünürlük 2 ) oluşturmak benim için en verimli seçimdi, çünkü oturum açıp metrikleri her AWS hesabından manuel olarak almam komut dosyalarının API çağrılarının bitmesini beklemekten çok daha hızlı. :(