Ho un account AWS. Sto usando S3 per archiviare i backup da diversi server. La domanda è che ci sono informazioni nella console AWS su quanto spazio su disco è in uso nel mio cloud S3?
Ho un account AWS. Sto usando S3 per archiviare i backup da diversi server. La domanda è che ci sono informazioni nella console AWS su quanto spazio su disco è in uso nel mio cloud S3?
Risposte:
Yippe: un aggiornamento di AWS CLI ti consente di eseguire l'istruzione in modo ricorsivo attraverso i bucket ...
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
Importante: è necessario specificare sia StorageType che BucketName nell'argomento delle dimensioni altrimenti non si otterranno risultati.
Non sono sicuro di quando questo è stato aggiunto all'AWSCLI dato che la domanda originale era di 3 anni fa, ma lo strumento della riga di comando fornisce un bel riepilogo eseguendo:
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
Per conoscere la dimensione del bucket S3 utilizzando la Console AWS:
Spero che questo ti aiuti.
ls
soluzioni basate su non lo fanno.
s3cmd può mostrarti questo eseguendo s3cmd du
, facoltativamente passando il nome del bucket come argomento.
L'AWS CLI ora supporta il --query
parametro che accetta espressioni JMESPath .
Ciò significa che puoi sommare i valori di dimensione forniti list-objects
utilizzando sum(Contents[].Size)
e contare come length(Contents[])
.
Questo può essere eseguito utilizzando l'AWS CLI ufficiale come di seguito ed è stato introdotto nel febbraio 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"
Altrimenti la query funziona alla grande!
Su Linux box che dispone python
(con programma di pip
installazione) grep
e awk
installa AWS CLI (strumenti a riga di comando per EC2, S3 e molti altri servizi)
sudo pip install awscli
quindi crea un .awssecret
file nella tua cartella Inizio con il contenuto come di seguito (regola chiave, segreto e regione secondo necessità):
[default]
aws_access_key_id=<YOUR_KEY_HERE>
aws_secret_access_key=<YOUR_SECRET_KEY_HERE>
region=<AWS_REGION>
Rendi questo file in lettura-scrittura solo per il tuo utente:
sudo chmod 600 .awssecret
ed esportalo nel tuo ambiente
export AWS_CONFIG_FILE=/home/<your_name>/.awssecret
quindi esegui nel terminale (questo è un comando a riga singola, separato da \
per una facile lettura qui):
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
parte elenca il bucket (o facoltativamente una 'sottocartella')grep
parte rimuove (usando -v
) le linee che corrispondono all'espressione regolare (usando -E
). ^$
è per la riga vuota, --
è per le linee di separazione nell'output diaws s3 ls
awk
si aggiunge semplicemente alla total
terza colonna dell'output risultante (la dimensione in KB), quindi lo visualizza alla fineNOTA questo comando funziona per il bucket o la "cartella" corrente, non in modo ricorsivo
Cloud Watch ti consente anche di creare metriche per il tuo bucket S3. Ti mostra le metriche in base alle dimensioni e al numero di oggetti. Servizi> Strumenti di gestione> Cloud watch. Scegli la regione in cui si trova il tuo bucket S3 e le metriche delle dimensioni e del conteggio degli oggetti saranno tra quelle disponibili.
Vedi /server/84815/how-can-i-get-the-size-of-an-amazon-s3-bucket
Risposta di 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';
è proprio lì in fondo al codice sorgente.
Ottenere dimensioni di bucket di grandi dimensioni tramite API (aws cli o s4cmd) è piuttosto lento. Ecco il mio HowTo per spiegare come analizzare il rapporto sull'utilizzo di S3 utilizzando bash one liner:
cat report.csv | awk -F, '{printf "%.2f GB %s %s \n", $7/(1024**3 )/24, $4, $2}' | sort -n
La console AWS non ti mostrerà questo, ma puoi utilizzare Bucket Explorer o Cloudberry Explorer per ottenere la dimensione totale di un bucket. Entrambi hanno versioni gratuite disponibili.
Nota: questi prodotti devono ancora ottenere le dimensioni di ogni singolo oggetto, quindi potrebbe richiedere molto tempo per secchi con molti oggetti.
Basato sulla risposta di @ 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]
Inoltre, Cyberduck consente convenientemente il calcolo delle dimensioni per un secchio o una cartella.
La risposta di Mini John ha funzionato totalmente per me! Fantastico ... ho dovuto aggiungere
--region eu-west-1
dall'Europa però
Questa è una vecchia domanda, ma poiché stavo cercando la risposta mi sono imbattuto in essa. Alcune delle risposte mi hanno fatto ricordare che uso il browser S3 per gestire i dati. Puoi fare clic su un bucket e premere le proprietà e ti mostrerà il totale. Abbastanza semplice. Consiglio vivamente il browser: https://s3browser.com/default.aspx?v=6-1-1&fam=x64
Bene, puoi farlo anche tramite un client S3 se preferisci un'interfaccia utente amichevole.
Io uso CrossFTP , che è gratuito e multipiattaforma, e lì puoi fare clic con il tasto destro sulla directory della cartella -> selezionare "Proprietà ..." -> fare clic sul pulsante "Calcola" accanto a Dimensioni e voilà.
Hai chiesto: informazioni nella console AWS su quanto spazio su disco sta utilizzando sul mio cloud S3 ?
Ho così alla fatturazione Dashboard e controllare l'utilizzo S3 nel disegno di legge corrente .
Ti danno le informazioni - MTD - in Gb a 6 decimali, IOW, al livello di Kb.
È suddiviso per regione, ma sommarli (supponendo che tu usi più di una regione) è abbastanza facile.
BTW: potresti aver bisogno di autorizzazioni IAM specifiche per accedere alle informazioni di fatturazione.
Uso Cloud Turtle per ottenere le dimensioni dei singoli secchi. Se la dimensione del bucket supera> 100 GB, ci vorrà del tempo per visualizzare la dimensione. Cloud turtle è freeware.