У мене є акаунт AWS. Я використовую S3 для зберігання резервних копій з різних серверів. Питання, чи є в консолі AWS інформація про те, скільки дискового простору використовується в моїй хмарі S3?
У мене є акаунт AWS. Я використовую S3 для зберігання резервних копій з різних серверів. Питання, чи є в консолі AWS інформація про те, скільки дискового простору використовується в моїй хмарі S3?
Відповіді:
Yippe - оновлення AWS CLI дозволяє вам рекурсивно проводити через відра ...
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 CLI підтримує --query
параметр, який приймає JMESPath вирази .
Це означає, що ви можете підсумовувати значення розміру, list-objects
використовуючи sum(Contents[].Size)
та рахуючи подібніlength(Contents[])
.
Це можна виконати за допомогою офіційного CLI 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, і серед цих доступних показників буде показник розміру та кількості об'єктів.
Дивіться /server/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 одного вкладиша:
cat report.csv | awk -F, '{printf "%.2f GB %s %s \n", $7/(1024**3 )/24, $4, $2}' | sort -n
Консоль AWS звичайно не показує це, але ви можете використовувати Провідник Bucket або 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 - в Gb до 6 знаків після коми, IOW, до рівня Kb.
Він розбивається на регіони, але додавати їх (якщо використовувати декілька регіонів) досить просто.
BTW: Вам можуть знадобитися спеціальні дозволи IAM для отримання інформації про виставлення рахунків.
Я використовую хмарну черепаху для отримання розміру окремих відра. Якщо розмір відра перевищує> 100 Gb, то для відображення розміру знадобиться певний час. Хмарна черепаха безкоштовна.