У меня есть аккаунт AWS. Я использую S3 для хранения резервных копий с разных серверов. Вопрос: есть ли в консоли AWS какая-либо информация о том, сколько дискового пространства используется в моем облаке S3?
У меня есть аккаунт 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"}'
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
Важно: вы должны указать StorageType и BucketName в аргументе измерений, иначе вы не получите результатов.
Я не уверен, когда это было добавлено в AWSCLI, учитывая, что исходный вопрос был задан 3 года назад, но инструмент командной строки дает хорошее резюме, запустив:
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
Чтобы узнать размер корзины S3 с помощью Консоли AWS:
Надеюсь это поможет.
ls
решения на основе - этого не делают.
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[])]"
In function sum(), invalid type for value: None, expected one of: ['array-number'], received: "null"
противном случае запрос будет работать отлично!
В окне 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
3-му столбцу результирующего вывода (размер в КБ), а затем отобразить его в концеПРИМЕЧАНИЕ: эта команда работает для текущего сегмента или папки, а не рекурсивно.
Облачные часы также позволяют создавать показатели для корзины S3. Он показывает вам показатели по размеру и количеству объектов. Сервисы> Инструменты управления> Облачные часы. Выберите регион, в котором находится ваша корзина S3, и метрики размера и количества объектов будут среди этих доступных метрик.
См. 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';
?>
echo ($totalSize / 1024 / 1024 / 1024) . ' GB';
прямо там, внизу исходного кода.
Получение сегментов большого размера через API (aws cli или s4cmd) происходит довольно медленно. Вот мое HowTo, объясняющее, как анализировать отчет об использовании S3 с помощью bash one liner:
cat report.csv | awk -F, '{printf "%.2f GB %s %s \n", $7/(1024**3 )/24, $4, $2}' | sort -n
Консоль 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 позволяет удобно рассчитывать размер корзины или папки.
Ответ Мини Джона полностью сработал для меня! Потрясающе ... пришлось добавить
--region eu-west-1
из Европы хотя
Это старый запрос, но, поскольку я искал ответ, я наткнулся на него. Некоторые ответы заставили меня вспомнить, что я использую браузер S3 для управления данными. Вы можете щелкнуть ведро и выбрать свойства, и он покажет вам общую сумму. Довольно просто. Я настоятельно рекомендую браузер: https://s3browser.com/default.aspx?v=6-1-1&fam=x64
Что ж, вы можете сделать это также через клиент S3, если вы предпочитаете удобный пользовательский интерфейс.
Я использую CrossFTP , который является бесплатным и кроссплатформенным, и там вы можете щелкнуть правой кнопкой мыши каталог папки -> выбрать «Свойства ...» -> нажать кнопку «Рассчитать» рядом с размером и вуаля.
Вы спросили: информация в консоли AWS о том, сколько дискового пространства используется в моем облаке S3 ?
Я перехожу на панель управления биллингом и проверяю использование S3 в текущем счете .
Они предоставляют вам информацию - MTD - в ГБ с точностью до 6 десятичных знаков, IOW, на уровне КБ.
Он разбит по регионам, но сложить их (при условии, что вы используете более одного региона) достаточно просто.
BTW: вам могут потребоваться определенные разрешения IAM, чтобы получить информацию о выставлении счетов.
Я использую Cloud Turtle, чтобы получить размер отдельных ведер. Если размер сегмента превышает> 100 ГБ, для отображения размера потребуется некоторое время. Cloud turtle распространяется бесплатно.