Tôi có tài khoản AWS. Tôi đang sử dụng S3 để lưu trữ các bản sao lưu từ các máy chủ khác nhau. Câu hỏi là có bất kỳ thông tin nào trong bảng điều khiển AWS về dung lượng ổ đĩa đang được sử dụng trong đám mây S3 của tôi không?
Tôi có tài khoản AWS. Tôi đang sử dụng S3 để lưu trữ các bản sao lưu từ các máy chủ khác nhau. Câu hỏi là có bất kỳ thông tin nào trong bảng điều khiển AWS về dung lượng ổ đĩa đang được sử dụng trong đám mây S3 của tôi không?
Câu trả lời:
Yippe - bản cập nhật cho AWS CLI cho phép bạn đệ quy thông qua các nhóm ...
aws s3 ls s3://<bucketname> --recursive | grep -v -E "(Bucket: |Prefix: |LastWriteTime|^$|--)" | awk 'BEGIN {total=0}{total+=$3}END{print total/1024/1024" MB"}'
aws cloudwatch get-metric-statistics --namespace AWS/S3 --start-time 2015-07-15T10:00:00 --end-time 2015-07-31T01:00:00 --period 86400 --statistics Average --region eu-west-1 --metric-name BucketSizeBytes --dimensions Name=BucketName,Value=toukakoukan.com Name=StorageType,Value=StandardStorage
Quan trọng: Bạn phải chỉ định cả StorageType và BucketName trong đối số thứ nguyên, nếu không bạn sẽ không nhận được kết quả nào.
Tôi không chắc khi nào điều này được thêm vào AWSCLI vì câu hỏi ban đầu là 3 năm trước, nhưng công cụ dòng lệnh đưa ra một bản tóm tắt đẹp bằng cách chạy:
aws s3 ls s3://mybucket --recursive --human-readable --summarize
for b in $(aws s3 ls | awk '{ print $NF }'); do printf "$b "; aws s3 ls s3://$b --recursive --human-readable --summarize | tail -1; done
Để tìm hiểu kích thước của nhóm S3 bằng Bảng điều khiển AWS:
Hi vọng điêu nay co ich.
ls
giải pháp dựa trên thì không.
s3cmd có thể cho bạn thấy điều này bằng cách chạy s3cmd du
, tùy chọn chuyển tên thùng làm đối số.
AWS CLI hiện hỗ trợ --query
tham số nhận biểu thức JMESPath .
Điều này có nghĩa là bạn có thể tính tổng các giá trị kích thước đã cho bằng list-objects
cách sử dụng sum(Contents[].Size)
và đếm như length(Contents[])
.
Điều này có thể được chạy bằng AWS CLI chính thức như bên dưới và được giới thiệu vào tháng 2 năm 2014
aws s3api list-objects --bucket BUCKETNAME --output json --query "[sum(Contents[].Size), length(Contents[])]"
In function sum(), invalid type for value: None, expected one of: ['array-number'], received: "null"
Nếu không, truy vấn hoạt động tốt!
Trên hộp linux có python
(với trình pip
cài đặt) grep
và awk
cài đặt AWS CLI (công cụ dòng lệnh cho EC2, S3 và nhiều dịch vụ khác)
sudo pip install awscli
sau đó tạo một .awssecret
tệp trong thư mục chính của bạn với nội dung như bên dưới (điều chỉnh khóa, bí mật và khu vực nếu cần):
[default]
aws_access_key_id=<YOUR_KEY_HERE>
aws_secret_access_key=<YOUR_SECRET_KEY_HERE>
region=<AWS_REGION>
Đặt tệp này chỉ đọc-ghi cho người dùng của bạn:
sudo chmod 600 .awssecret
và xuất nó vào môi trường của bạn
export AWS_CONFIG_FILE=/home/<your_name>/.awssecret
sau đó chạy trong terminal (đây là một lệnh dòng đơn, được phân tách bằng cách \
để dễ đọc ở đây):
aws s3 ls s3://<bucket_name>/foo/bar | \
grep -v -E "(Bucket: |Prefix: |LastWriteTime|^$|--)" | \
awk 'BEGIN {total=0}{total+=$3}END{print total/1024/1024" MB"}'
aws
phần liệt kê các xô (hoặc tùy chọn một 'tiểu thư mục')grep
loại bỏ việc phần (sử dụng -v
) các dòng phù hợp với Regular Expression (sử dụng -E
). ^$
dành cho dòng trống, --
dành cho các dòng phân tách trong đầu ra củaaws s3 ls
awk
chỉ cần thêm vào total
cột thứ 3 của kết quả đầu ra (kích thước tính bằng KB), sau đó hiển thị nó ở cuốiLƯU Ý lệnh này hoạt động cho nhóm hiện tại hoặc 'thư mục', không phải đệ quy
Đồng hồ đám mây cũng cho phép bạn tạo chỉ số cho nhóm S3 của mình. Nó hiển thị cho bạn các chỉ số theo kích thước và số lượng đối tượng. Dịch vụ> Công cụ quản lý> Đồng hồ đám mây. Chọn khu vực có nhóm S3 của bạn và các chỉ số kích thước và số lượng đối tượng sẽ nằm trong số các chỉ số có sẵn đó.
Xem /server/84815/how-can-i-get-the-size-of-an-amazon-s3-bucket
Trả lời bởi Vic ...
<?php
if (!class_exists('S3')) require_once 'S3.php';
// Instantiate the class
$s3 = new S3('accessKeyId', 'secretAccessKey');
S3::$useSSL = false;
// List your buckets:
echo "S3::listBuckets(): ";
echo '<pre>' . print_r($s3->listBuckets(), 1). '</pre>';
$totalSize = 0;
$objects = $s3->getBucket('name-of-your-bucket');
foreach ($objects as $name => $val) {
// If you want to get the size of a particular directory, you can do
// only that.
// if (strpos($name, 'directory/sub-directory') !== false)
$totalSize += $val['size'];
}
echo ($totalSize / 1024 / 1024 / 1024) . ' GB';
?>
echo ($totalSize / 1024 / 1024 / 1024) . ' GB';
nằm ngay ở cuối mã nguồn.
Lấy kích thước nhóm lớn thông qua API (aws cli hoặc s4cmd) khá chậm. Đây là Hướng dẫn của tôi Để giải thích cách phân tích cú pháp Báo cáo sử dụng S3 bằng cách sử dụng bash một lớp lót:
cat report.csv | awk -F, '{printf "%.2f GB %s %s \n", $7/(1024**3 )/24, $4, $2}' | sort -n
Bảng điều khiển AWS sẽ không hiển thị cho bạn điều này nhưng bạn có thể sử dụng Bucket Explorer hoặc Cloudberry Explorer để nhận tổng kích thước của một nhóm. Cả hai đều có sẵn phiên bản miễn phí.
Lưu ý: các sản phẩm này vẫn phải lấy kích thước của từng đối tượng riêng biệt nên có thể mất nhiều thời gian đối với những thùng có nhiều đối tượng.
Dựa trên câu trả lời của @ cudds:
function s3size()
{
for path in $*; do
size=$(aws s3 ls "s3://$path" --recursive | grep -v -E "(Bucket: |Prefix: |LastWriteTime|^$|--)" | awk 'BEGIN {total=0}{total+=$3}END{printf "%.2fGb\n", (total/1024/1024/1024)}')
echo "[s3://$path]=[$size]"
done
}
...
$ s3size bucket-a bucket-b/dir
[s3://bucket-a]=[24.04Gb]
[s3://bucket-b/dir]=[26.69Gb]
Ngoài ra, Cyberduck cho phép tính toán kích thước cho một thùng hoặc một thư mục một cách thuận tiện.
Câu trả lời của Mini John hoàn toàn phù hợp với tôi! Tuyệt vời ... phải thêm
--region eu-west-1
từ Châu Âu mặc dù
Đây là một câu hỏi cũ, nhưng vì tôi đang tìm câu trả lời nên tôi đã lướt qua nó. Một số câu trả lời khiến tôi nhớ rằng tôi sử dụng Trình duyệt S3 để quản lý dữ liệu. Bạn có thể nhấp vào một nhóm và đánh thuộc tính và nó hiển thị cho bạn tổng số. Khá đơn giản. Tôi thực sự khuyên bạn nên sử dụng trình duyệt: https://s3browser.com/default.aspx?v=6-1-1&fam=x64
Bạn cũng có thể làm điều đó thông qua ứng dụng khách S3 nếu bạn thích giao diện người dùng thân thiện với con người.
Tôi sử dụng CrossFTP , miễn phí và đa nền tảng, ở đó bạn có thể nhấp chuột phải vào thư mục thư mục -> chọn "Thuộc tính ..." -> nhấp vào nút "Tính toán" bên cạnh Kích thước và thì đấy.
Bạn đã hỏi: thông tin trong bảng điều khiển AWS về dung lượng ổ đĩa đang sử dụng trên đám mây S3 của tôi ?
Tôi vào Trang tổng quan thanh toán và kiểm tra việc sử dụng S3 trong hóa đơn hiện tại .
Họ cung cấp cho bạn thông tin - MTD - tính bằng Gb đến 6 dấu thập phân, IOW, đến mức Kb.
Nó được chia nhỏ theo vùng, nhưng việc cộng chúng lại (giả sử bạn sử dụng nhiều vùng) là đủ dễ dàng.
BTW: Bạn có thể cần các quyền IAM cụ thể để truy cập thông tin Thanh toán.
Tôi sử dụng Cloud Turtle để lấy kích thước của từng nhóm. Nếu kích thước nhóm vượt quá> 100 Gb, thì sẽ mất một khoảng thời gian để hiển thị kích thước. Rùa mây là phần mềm miễn phí.