Ответ 1
Yippe - обновление для AWS CLI позволяет вам рекурсивно ls через ведра...
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. Я использую S3 для хранения резервных копий с разных серверов. Вопрос в том, есть ли какая-либо информация в консоли AWS о том, сколько дискового пространства используется в моем облаке S3?
Yippe - обновление для AWS CLI позволяет вам рекурсивно ls через ведра...
aws s3 ls s3://<bucketname> --recursive | grep -v -E "(Bucket: |Prefix: |LastWriteTime|^$|--)" | awk 'BEGIN {total=0}{total+=$3}END{print total/1024/1024" MB"}'
Я не уверен, когда это было добавлено в AWSCLI, учитывая, что исходный вопрос был 3 года назад, но инструмент командной строки дает хорошее резюме, запустив:
aws s3 ls s3://mybucket --recursive --human-readable --summarize
Чтобы узнать размер ведра S3 с помощью консоли AWS:
Надеюсь, что это поможет.
s3cmd может показать вам это, запустив s3cmd du
, опционально передав имя ведра в качестве аргумента.
CLI AWS теперь поддерживает параметр --query
, который принимает выражения JMESPath.
Это означает, что вы можете суммировать значения размера, заданные list-objects
, используя sum(Contents[].Size)
и рассчитывать как length(Contents[])
.
Это можно запустить с помощью официального AWS CLI, как показано ниже, и был представлен в Feb 2014
aws s3api list-objects --bucket BUCKETNAME --output json --query "[sum(Contents[].Size), length(Contents[])]"
В окне linux, имеющем 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+=$3}END{print total/1024/1024" MB"}'
aws
перечисляется ведро (или, необязательно, подпапка)grep
удаляет (используя -v
) строки, соответствующие регулярному выражению (используя -E
). ^$
для пустой строки, --
- для строк разделителя на выходе aws s3 ls
awk
просто добавляет к total
третий куб результирующего вывода (размер в КБ), а затем отображает его в концеПРИМЕЧАНИЕ эта команда работает для текущего ведра или "папки", а не рекурсивно
См. 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. Он показывает ваши показатели по размеру и количеству объектов. Услуги > Инструменты управления > Cloud watch. Выберите регион, в котором находится ваш ведро S3, и метрики размера и количества объектов будут среди доступных метрик.
Получение больших ведер по API (либо aws cli, либо s4cmd) происходит довольно медленно. Здесь my Howto объясняет, как разобрать отчет об использовании S3, используя bash один лайнер:
cat report.csv | awk -F, '{printf "%.2f GB %s %s \n", $7/(1024**3 )/24, $4, $2}' | sort -n
В дополнение к Кристоферу.
Если вам нужно подсчитать общий размер используемого ведра, используйте:
aws s3api list-object-versions --bucket BUCKETNAME --output json --query "[sum(Versions[].Size)]"
Он учитывает как последние, так и архивные версии.
Консоль AWS не покажет вам это, но вы можете использовать Bucket Explorer или Cloudberry 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+=$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]
Кроме того, Cyberduck удобно позволяет вычислять размер для ведра или папки.
Mini John полностью помог мне! Удивительно... пришлось добавить
--region eu-west-1
из Европы, хотя
Это старый запрос, но поскольку я искал ответ, я наткнулся на него. Некоторые из ответов заставили меня вспомнить, что я использую S3 Browser для управления данными. Вы можете щелкнуть по ковку и нажать свойства, и он показывает общее количество. Довольно просто. Я настоятельно рекомендую браузер: https://s3browser.com/default.aspx?v=6-1-1&fam=x64
Ну, вы можете сделать это также через S3-клиент, если вы предпочитаете дружественный пользовательский интерфейс.
Я использую CrossFTP, который является бесплатным и кросс-платформенным, и вы можете щелкнуть правой кнопкой мыши по папке → select "Свойства..." → нажмите кнопку "Рассчитать" рядом с "Размер и вуаля".
s3admin - это приложение с открытым исходным кодом, которое позволяет просматривать сегменты, вычислять общий размер, показывать самые большие/самые маленькие файлы. Он предназначен для быстрого обзора ваших ковшей и их использования.
Вы спросили: информацию в консоли AWS о том, сколько дискового пространства используется в моем облаке S3?
Я подхожу к Billing Dashboard и проверяю использование S3 в текущем счете.
Они дают вам информацию - MTD - в Gb до 6 десятичных знаков, IOW, до уровня Kb.
Он разбит по регионам, но их сложение (при условии, что вы используете более одного региона) достаточно просто.
BTW: You may need specific IAM permissions to get to the Billing information.
Я использую Cloud Turtle, чтобы получить размер отдельных ведер. Если размер ковша превышает > 100 Гб, для отображения размера потребуется некоторое время. Облачная черепаха бесплатна.