it-swarm.com.ru

AWS S3: как узнать, сколько дискового пространства используется

У меня есть аккаунт AWS. Я использую S3 для хранения резервных копий с разных серверов. Вопрос в том, есть ли какая-либо информация в консоли AWS о том, сколько дискового пространства используется в моем облаке S3? 

Спасибо

83
KennyPowers

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"}'
87
cudds

Я не уверен, когда это было добавлено в AWSCLI, учитывая, что первоначальный вопрос был 3 года назад, но инструмент командной строки дает хорошее резюме, выполнив:

aws s3 ls s3://mybucket --recursive --human-readable --summarize
64
thaavik

s3cmd может показать это, запустив s3cmd du, при желании передавая имя сегмента в качестве аргумента.

35
markusk

CLI 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[])]"
25
Christopher Hackett

Чтобы узнать размер корзины S3 с помощью консоли AWS:

  1. Нажмите на название S3 Bucket
  2. Выберите вкладку «Управление»
  3. Нажмите кнопку навигации «Метрики»
  4. По умолчанию вы должны увидеть метрику хранилища

Надеюсь это поможет.

20
endriju

В 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-й столбец результирующего вывода (размер в КБ), затем отобразите его в конце

NOTEэта команда работает для текущего сегмента или «папки», а не рекурсивно

7
JScoobyCed

См. 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';
?>
6
JonLovett

Облачные часы также позволяют создавать метрики для вашей корзины S3. Он показывает вам метрики по размеру и количеству объектов. Услуги> Инструменты управления> Cloud watch. Выберите регион, в котором находится ваш сегмент S3, и метрики размера и количества объектов будут среди этих доступных метрик.

6
rowelee

Получение размера large buckets через API (либо aws cli, либо s4cmd) довольно медленное. Вот мой Как объяснить, как анализировать отчет об использовании S3 используя bash one liner:

cat report.csv | awk -F, '{printf "%.2f GB %s %s \n", $7/(1024**3 )/24, $4, $2}' | sort -n
5
Jakub Głazik

В дополнение к ответу Кристофера.

Если вам нужно подсчитать общий размер версионного буфера, используйте:

aws s3api list-object-versions --bucket BUCKETNAME --output json --query "[sum(Versions[].Size)]"

Он рассчитывает как последние и архивные версии.

4
ruletkin

Это старый запрос, но так как я искал ответ, я наткнулся на него. Некоторые ответы заставили меня вспомнить, что я использую S3 Browser для управления данными. Вы можете нажать на ведро и нажать свойства, и он покажет вам общее количество. Довольно просто Я настоятельно рекомендую браузер: https://s3browser.com/default.aspx?v=6-1-1&fam=x64

1
user7191982

Консоль AWS не покажет вам этого, но вы можете использовать Bucket Explorer или Cloudberry Explorer , чтобы получить общий размер корзины. У обоих есть бесплатные версии.

Примечание: эти продукты все еще должны получать размер каждого отдельного объекта, поэтому может потребоваться много времени для контейнеров с большим количеством объектов.

1
Geoff Appleford

Основано на ответе @ 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 удобно позволяет рассчитать размер для корзины или папки.

1
Evgeny Goldin

Мини Джон ответ полностью сработал для меня! Круто ... пришлось добавить 

--region eu-west-1 

из Европы, хотя

1
pitxon_net

Администратор s3 - это приложение с открытым исходным кодом, которое позволяет вам просматривать сегменты, вычислять общий размер, показывать самые большие/самые маленькие файлы. Он предназначен для краткого обзора ваших ведер и их использования.

0
maksion

Что ж, вы можете сделать это также через клиент S3, если вы предпочитаете удобный для пользователя интерфейс. 

Я использую CrossFTP , который является бесплатным и кроссплатформенным, и там вы можете щелкнуть правой кнопкой мыши по каталогу папки -> выбрать «Свойства ...» -> нажать кнопку «Рассчитать» рядом с Размер и вуаля.

0
Yiannis Tsimalis