2015-08-24 42 views

risposta

11

A partire dal 28 luglio 2015 è possibile ottenere queste informazioni tramite CloudWatch.

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 us-east-1 
--metric-name BucketSizeBytes --dimensions Name=BucketName,Value=myBucketNameGoesHere 
Name=StorageType,Value=StandardStorage 


Important: You must specify both StorageType and BucketName in the dimensions argument otherwise you will get no results. 
+1

questo è anche visibile nella console. Nota I bucket S3 sono regionali, quindi è importante controllare tutte le regioni in cui si posizionano i bucket. – tedder42

+0

Funziona bene, ma CloudWatch implica qualche ritardo. Mi ci sono volute ore per il mio secchio di riserva solo per apparire. La disponibilità di una finestra di "1 ora" non mi convince troppo, poiché sto scrivendo questo alle 09h49, e i miei ultimi registri visibili sono datati di ieri, 07h03. Suppongo che l'utilizzo delle metriche dettagliate della CW aiuterebbe. – Balmipour

+0

restituisce nulla per me: { "Datapoints": [], "label": "BucketSizeBytes" } Il secchio è stato vivo per un paio di giorni. – abrkn

1

In alternativa, si può provare s3cmd, che ha un comando du come Unix.

4

Io uso s3cmd du s3://BUCKET/ --human-readable per visualizzare la dimensione delle cartelle in S3. Fornisce informazioni abbastanza dettagliate sugli oggetti totali nel bucket e le sue dimensioni in una forma molto leggibile.

9

Due modi,

Uso AWS cli

AWS s3 ls --summarize --human-leggibile --recursive S3: // secchio/cartella/

Se noi ometti '/' alla fine, otterrà tutte le cartelle che iniziano con il nome della cartella e darà una dimensione totale di tutte.

AWS s3 ls --summarize --human-leggibile s3 --recursive: // secchio/cartella

Utilizzando api boto3

import boto3 

def get_folder_size(bucket, prefix): 
    total_size = 0 
    for obj in boto3.resource('s3').Bucket(bucket).objects.filter(Prefix=prefix): 
     total_size += obj.size 
    return total_size 
+0

Adatto solo per piccoli bucket poiché richiede metadati per ogni singolo oggetto. +1 per quel caso – geekQ

+1

Non funziona, elenca tutti i file e le rispettive dimensioni indipendentemente dalla barra finale. – Eduardo

0

s3cmd du --human-readable --recursive s3: // Bucket_Name/

9

Amazon ha modificato l'interfaccia Web in modo da avere "Ottieni dimensioni" nel menu "Altro".

+0

Questa dovrebbe essere l'unica risposta. Non c'è bisogno di strumenti da riga di comando. – Eduardo

-1

aws s3 ls --summarize --human-readable --recursive s3://Bucket_Name/folder/

è molto semplice e veloce sia per gli oggetti (quello s3 chiama cartelle) o secchi.

Problemi correlati