Solución:
Solución 1:
Esto ahora se puede hacer de manera trivial con solo el cliente de línea de comandos oficial de AWS:
aws s3 ls --summarize --human-readable --recursive s3://bucket-name/
Documentación oficial: Referencia de comandos de la AWS CLI (versión 2)
Esto también acepta prefijos de ruta si no desea contar todo el depósito:
aws s3 ls --summarize --human-readable --recursive s3://bucket-name/directory
Solucion 2:
La AWS CLI ahora admite la --query
parámetro que toma expresiones JMESPath.
Esto significa que puede sumar los valores de tamaño dados por list-objects
utilizando sum(Contents[].Size)
y cuenta como length(Contents[])
.
Esto se puede ejecutar utilizando la AWS CLI oficial como se muestra a continuación y se introdujo en febrero de 2014
aws s3api list-objects --bucket BUCKETNAME --output json --query "[sum(Contents[].Size), length(Contents[])]"
Solución 3:
Consola de AWS:
A partir del 28 de julio de 2015, puede obtener esta información a través de CloudWatch. Si desea una GUI, vaya a la consola de CloudWatch: (Elija Región>) Métricas> S3
Comando de la AWS CLI:
Esto es mucho más rápido que algunos de los otros comandos publicados aquí, ya que no consulta el tamaño de cada archivo individualmente para calcular la suma.
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: Debe especificar StorageType y BucketName en el argumento de dimensiones; de lo contrario, no obtendrá resultados. Todo lo que necesitas cambiar es el --start-date
, --end-time
, y Value=toukakoukan.com
.
Aquí hay un script de bash que puede usar para evitar tener que especificar --start-date
y --end-time
a mano.
#!/bin/bash
bucket=$1
region=$2
now=$(date +%s)
aws cloudwatch get-metric-statistics --namespace AWS/S3 --start-time "$(echo "$now - 86400" | bc)" --end-time "$now" --period 86400 --statistics Average --region $region --metric-name BucketSizeBytes --dimensions Name=BucketName,Value="$bucket" Name=StorageType,Value=StandardStorage
Solución 4:
s3cmd puede hacer esto:
s3cmd du s3://bucket-name
Solución 5:
Si descarga un informe de uso, puede graficar los valores diarios de la TimedStorage-ByteHrs
campo.
Si desea ese número en GiB, simplemente divida entre 1024 * 1024 * 1024 * 24
(eso es GiB-horas para un ciclo de 24 horas). Si quieres el número en bytes, simplemente divídelo por 24 y haz un gráfico.