16 ответов:
Yippe-обновление для AWS CLI позволяет рекурсивно ls через ведра...
aws s3 ls s3://<bucketname> --recursive | grep -v -E "(Bucket: |Prefix: |LastWriteTime|^$|--)" | awk 'BEGIN {total=0}{total+=}END{print total/1024/1024" MB"}'
Я не уверен, когда это было добавлено в AWSCLI, учитывая, что исходный вопрос был 3 года назад, но инструмент командной строки дает хорошее резюме, запустив:
aws s3 ls s3://mybucket --recursive --human-readable --summarize
s3cmd может показать вам это, запустив
s3cmd du, при необходимости передавая имя ведра в качестве аргумента.
интерфейс командной строки AWS теперь поддерживает
--queryпараметр, который принимает JMESPath выражения.Это означает, что вы можете суммировать значения размера, заданные
list-objectsиспользуяsum(Contents[].Size)и какlength(Contents[]).Это можно запустить с помощью официального интерфейса командной строки AWS, как показано ниже, и было введено в февраль 2014
aws s3api list-objects --bucket BUCKETNAME --output json --query "[sum(Contents[].Size), length(Contents[])]"
чтобы узнать размер корзины S3 с помощью консоли AWS:
- щелкните имя корзины S3
- выберите вкладку "Управление"
- Нажмите кнопку навигации "метрики"
- по умолчанию вы должны увидеть метрику хранения ведра
надеюсь, что это помогает.
на Linux box, которые имеют
python(Сpipустановщик),grepиawk, установите AWS CLI (инструменты командной строки для EC2, S3 и многих других сервисов)sudo pip install awscliзатем создать
.awssecretфайл в вашей домашней папке с содержимым, как показано ниже (настроить ключ, секрет и регион по мере необходимости):[default] aws_access_key_id=<YOUR_KEY_HERE> aws_secret_access_key=<YOUR_SECRET_KEY_HERE> region=<AWS_REGION>сделать этот файл для чтения-записи только для вашего пользователя:
sudo chmod 600 .awssecretи экспортировать его в своей среде
export AWS_CONFIG_FILE=/home/<your_name>/.awssecretзатем запустите в терминале (это однострочная команда, разделенная символом
\для удобства чтения здесь):aws s3 ls s3://<bucket_name>/foo/bar | \ grep -v -E "(Bucket: |Prefix: |LastWriteTime|^$|--)" | \ awk 'BEGIN {total=0}{total+=}END{print total/1024/1024" MB"}'
- the
awsчасть перечисляет ведро (или необязательно "подпапку")- the
grepчасть удаляется (с помощью-v) строки, соответствующие регулярному выражению (с помощью-E).^$на пустую строку,--для разделительных линий на выходеaws s3 ls- последние
awkпросто добавьтеtotal3-й Колум полученного выход (размер в КБ), а затем отобразить его в концеПримечание эта команда работает для текущего ведра или "папки", а не рекурсивно
см https://serverfault.com/questions/84815/how-can-i-get-the-size-of-an-amazon-s3-bucket
ответил Витька...
<?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'; ?>
Cloud watch также позволяет создавать метрики для вашего ведра S3. Он показывает вам метрики по размеру и количеству объектов. Службы> Инструменты управления> облачные часы. Выберите регион, в котором находится ваш контейнер S3, и метрики размера и количества объектов будут среди этих доступных метрик.
начало большие ведра размер через API (либо aws cli, либо s4cmd) довольно медленный. Вот мой как объяснить, как разобрать отчет об использовании S3 С помощью bash One liner:
cat report.csv | awk -F, '{printf "%.2f GB %s %s \n", /(1024**3 )/24, , }' | sort -n
В дополнение к ответу Кристофера.
Если вам нужно подсчитать общий размер версионного ведра, используйте:
aws s3api list-object-versions --bucket BUCKETNAME --output json --query "[sum(Versions[].Size)]"он учитывает как последние, так и архивные версии.
консоль AWS не покажет вам это, но вы можете использовать Bucket Explorer или Морошка Explorer чтобы получить общий размер ведра. Оба имеют бесплатные версии доступны.
примечание: эти продукты все еще должны получить размер каждого отдельного объекта, поэтому это может занять много времени для ведер с большим количеством объектов.
на основе ответа @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+=}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]и файлом Cyberduck удобно позволяет для вычисления размера для ведра или папки.
Мини Джонответ полностью работал для меня! Потрясающий... пришлось добавить
--region eu-west-1из Европы, хотя
Это старый запрос, но так как я искал ответ, я наткнулся на него. Некоторые из ответов заставили меня вспомнить, что я использую браузер S3 для управления данными. Вы можете нажать на ведро и нажмите Свойства, и он показывает вам общую сумму. Довольно просто. Я настоятельно рекомендую браузер: https://s3browser.com/default.aspx?v=6-1-1&fam=x64
Ну, вы можете сделать это через клиент S3, если вы предпочитаете дружественный интерфейс человека.
Я использую CrossFTP, который является бесплатным и кросс-платформенным, и там вы можете щелкнуть правой кнопкой мыши на папке каталога- > выберите "Свойства..."-> нажмите на кнопку "Рассчитать" рядом с размером и вуаля.
Я использую Облако Черепаха чтобы получить размер отдельных ведер. Если размер ведра превышает >100 Гб, то для отображения размера потребуется некоторое время. Облако черепаха является бесплатным.
Comments