Ich habe ein AWS-Konto. Ich verwende S3, um Backups von verschiedenen Servern zu speichern. Die Frage: Gibt es in der AWS-Konsole Informationen darüber, wie viel Speicherplatz in meiner S3-Cloud verwendet wird?
Ich habe ein AWS-Konto. Ich verwende S3, um Backups von verschiedenen Servern zu speichern. Die Frage: Gibt es in der AWS-Konsole Informationen darüber, wie viel Speicherplatz in meiner S3-Cloud verwendet wird?
Antworten:
Yippe - ein Update auf AWS CLI ermöglicht es Ihnen, rekursiv durch Eimer zu 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
Wichtig: Sie müssen sowohl StorageType als auch BucketName im Dimensionsargument angeben, sonst erhalten Sie keine Ergebnisse.
Ich bin mir nicht sicher, wann dies zur AWSCLI hinzugefügt wurde, da die ursprüngliche Frage vor 3 Jahren gestellt wurde, aber das Befehlszeilentool bietet eine schöne Zusammenfassung, indem es Folgendes ausführt:
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
So ermitteln Sie die Größe des S3-Buckets mithilfe der AWS-Konsole:
Hoffe das hilft.
ls
basierten Lösungen jedoch nicht.
s3cmd kann Ihnen dies zeigen, indem es ausgeführt wird s3cmd du
und optional den Bucket-Namen als Argument übergibt.
Die AWS CLI unterstützt jetzt die --query
Parameter, der einen JMESPath akzeptiert Ausdrücke .
Dies bedeutet, dass Sie die angegebenen Größenwerte mit list-objects
verwenden könnensum(Contents[].Size)
und zählen können length(Contents[])
.
Dies kann mit der offiziellen AWS-CLI wie folgt ausgeführt werden und wurde im Februar 2014 eingeführt
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"
Andernfalls funktioniert die Abfrage hervorragend!
Unter Linux-Box mit python
(mit pip
Installationsprogramm) grep
und awk
AWS CLI installieren (Befehlszeilentools für EC2, S3 und viele andere Dienste)
sudo pip install awscli
Erstellen Sie dann eine .awssecret
Datei in Ihrem Home-Ordner mit dem folgenden Inhalt (passen Sie Schlüssel, Geheimnis und Region nach Bedarf an):
[default]
aws_access_key_id=<YOUR_KEY_HERE>
aws_secret_access_key=<YOUR_SECRET_KEY_HERE>
region=<AWS_REGION>
Lassen Sie diese Datei nur für Ihren Benutzer lesen und schreiben:
sudo chmod 600 .awssecret
und exportieren Sie es in Ihre Umgebung
export AWS_CONFIG_FILE=/home/<your_name>/.awssecret
Führen Sie dann das Terminal aus (dies ist ein einzeiliger Befehl, der \
zum leichteren Lesen hier durch getrennt ist):
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
Teil listet den Bucket auf (oder optional einen 'Unterordner').grep
Teil entfernt (mit -v
) die Zeilen, die mit dem regulären Ausdruck übereinstimmen (mit -E
). ^$
ist für leere Zeile,--
steht für die Trennlinien in der Ausgabe vonaws s3 ls
awk
einfach zur total
3. Spalte der resultierenden Ausgabe hinzugefügt (die Größe in KB) und am Ende angezeigtHINWEIS Dieser Befehl funktioniert nicht rekursiv für den aktuellen Bucket oder 'Ordner'
Mit Cloud Watch können Sie auch Metriken für Ihren S3-Bucket erstellen. Es zeigt Ihnen Metriken nach Größe und Objektanzahl. Dienste> Verwaltungstools> Cloud Watch. Wählen Sie die Region aus, in der sich Ihr S3-Bucket befindet, und die Metriken für Größe und Objektanzahl gehören zu den verfügbaren Metriken.
Siehe /server/84815/how-can-i-get-the-size-of-an-amazon-s3-bucket
Beantwortet von Vic ...
<?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';
befindet sich genau dort unten im Quellcode.
Das Abrufen großer Buckets über die API (entweder aws cli oder s4cmd) ist ziemlich langsam. Hier ist meine Anleitung zum Parsen des S3-Nutzungsberichts mit bash one liner:
cat report.csv | awk -F, '{printf "%.2f GB %s %s \n", $7/(1024**3 )/24, $4, $2}' | sort -n
Die AWS-Konsole zeigt Ihnen dies nicht an, Sie können jedoch den Bucket Explorer oder den Cloudberry Explorer verwenden , um die Gesamtgröße eines zu ermitteln. Beide haben kostenlose Versionen zur Verfügung.
Hinweis: Diese Produkte müssen immer noch die Größe jedes einzelnen Objekts erhalten, daher kann es bei Eimern mit vielen Objekten lange dauern.
Basierend auf der Antwort von @ 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]
Außerdem ermöglicht Cyberduck bequem die Berechnung der Größe für einen Bucket oder einen Ordner.
Die Antwort von Mini John hat für mich total funktioniert! Genial ... musste hinzufügen
--region eu-west-1
aus Europa
Dies ist eine alte Anfrage, aber da ich nach der Antwort gesucht habe, bin ich darauf gestoßen. Einige der Antworten haben mich daran erinnert, dass ich den S3-Browser zum Verwalten von Daten verwende. Sie können auf einen Bucket klicken und auf Eigenschaften klicken, um die Gesamtsumme anzuzeigen. Ziemlich einfach. Ich kann den Browser nur empfehlen: https://s3browser.com/default.aspx?v=6-1-1&fam=x64
Sie können dies auch über einen S3-Client tun, wenn Sie eine benutzerfreundliche Benutzeroberfläche bevorzugen.
Ich verwende CrossFTP , das kostenlos und plattformübergreifend ist, und dort können Sie mit der rechten Maustaste auf das Ordnerverzeichnis klicken -> "Eigenschaften ..." auswählen -> auf die Schaltfläche "Berechnen" neben Größe und Voila klicken.
Sie haben gefragt: Informationen in der AWS-Konsole darüber, wie viel Speicherplatz in meiner S3-Cloud verwendet wird ?
Ich gehe also zum Abrechnungs-Dashboard und überprüfe die S3-Nutzung in der aktuellen Rechnung .
Sie geben Ihnen die Information - MTD - in Gb bis 6 Dezimalstellen, IOW, bis zur Kb-Ebene.
Es ist nach Regionen unterteilt, aber das Addieren (vorausgesetzt, Sie verwenden mehr als eine Region) ist einfach genug.
Übrigens: Möglicherweise benötigen Sie bestimmte IAM-Berechtigungen, um zu den Rechnungsinformationen zu gelangen.
Ich benutze Cloud Turtle , um die Größe einzelner Eimer zu ermitteln. Wenn die Bucket-Größe> 100 GB überschreitet, dauert es einige Zeit, bis die Größe angezeigt wird. Wolkenschildkröte ist Freeware.