Nghị quyết 1
Vì vậy, tôi đã giải quyết điều này với kịch bản sau đây. Ban đầu tôi chỉ đăng câu hỏi trong trường hợp có một cách dễ dàng hơn mà tôi không biết.
#!/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
Nghị quyết 2
Sử dụng Bảng điều khiển trong CloudWatch trong bảng điều khiển AWS.
Sau đó, bạn có thể chỉ định tất cả các nhóm S3 và thêm số liệu thống kê số để hiển thị số liệu kích thước lưu trữ.
Điều này sẽ không làm bạn tốn nhiều cuộc gọi API và có thể nhanh hơn đáng kể tùy thuộc vào kích thước của các thùng s3 (mất khá nhiều thời gian để có được kích thước trên các thùng rất lớn).
Bản án
Tạo Bảng điều khiển ( Độ phân giải 2 ) trên mỗi tài khoản AWS là tùy chọn hiệu quả nhất đối với tôi vì tôi nhanh chóng đăng nhập và lấy số liệu theo cách thủ công từ mỗi tài khoản AWS hơn là chờ các lệnh gọi API của kịch bản kết thúc. :