Saltar al contenido

¿Cómo puedo obtener el tamaño de un bucket de Amazon S3?

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.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *