Tengo una cuenta de AWS. Estoy usando S3 para almacenar copias de seguridad de diferentes servidores. La pregunta es ¿hay alguna información en la consola de AWS sobre cuánto espacio en disco está en uso en mi nube S3?
Tengo una cuenta de AWS. Estoy usando S3 para almacenar copias de seguridad de diferentes servidores. La pregunta es ¿hay alguna información en la consola de AWS sobre cuánto espacio en disco está en uso en mi nube S3?
Respuestas:
Yippe: una actualización de AWS CLI le permite ls recursivamente a través de buckets ...
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: debe especificar StorageType y BucketName en el argumento de dimensiones; de lo contrario, no obtendrá resultados.
No estoy seguro de cuándo se agregó esto a la AWSCLI dado que la pregunta original fue hace 3 años, pero la herramienta de línea de comandos ofrece un buen resumen ejecutando:
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
Para averiguar el tamaño del bucket de S3 con la consola de AWS:
Espero que esto ayude.
ls
soluciones basadas en no.
s3cmd puede mostrarle esto ejecutando s3cmd du
, opcionalmente pasando el nombre del depósito como argumento.
La AWS CLI ahora admite el --query
parámetro que toma expresiones JMESPath .
Esto significa que puede sumar los valores de tamaño dados list-objects
usando sum(Contents[].Size)
y contar como length(Contents[])
.
Esto se puede ejecutar utilizando la AWS CLI oficial como se muestra a continuación y se presentó en febrero de 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"
contrario, la consulta funciona muy bien.
En linux box que tienen python
(con pip
instalador) grep
e awk
instalan AWS CLI (herramientas de línea de comandos para EC2, S3 y muchos otros servicios)
sudo pip install awscli
luego cree un .awssecret
archivo en su carpeta de inicio con el contenido que se muestra a continuación (ajuste la clave, el secreto y la región según sea necesario):
[default]
aws_access_key_id=<YOUR_KEY_HERE>
aws_secret_access_key=<YOUR_SECRET_KEY_HERE>
region=<AWS_REGION>
Haga que este archivo sea de lectura y escritura solo para su usuario:
sudo chmod 600 .awssecret
y exportarlo a su entorno
export AWS_CONFIG_FILE=/home/<your_name>/.awssecret
luego ejecute en la terminal (este es un comando de una sola línea, separado por \
para una fácil lectura aquí):
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 enumera el cubo (u opcionalmente una 'subcarpeta')grep
parte elimina (usando -v
) las líneas que coinciden con la expresión regular (usando -E
). ^$
es para la línea en blanco, --
es para las líneas de separación en la salida deaws s3 ls
awk
simplemente agregue a total
la tercera columna de la salida resultante (el tamaño en KB) y luego muéstrelo al finalNOTA: este comando funciona para el depósito o la 'carpeta' actual, no de forma recursiva
Cloud Watch también le permite crear métricas para su bucket de S3. Le muestra métricas por tamaño y recuento de objetos. Servicios> Herramientas de gestión> Vigilancia en la nube. Elija la región donde está su bucket de S3 y las métricas de tamaño y recuento de objetos se encontrarían entre las métricas disponibles.
Consulte /server/84815/how-can-i-get-the-size-of-an-amazon-s3-bucket
Contestado por 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';
está justo al final del código fuente.
Obtener un gran tamaño de cubos a través de API (ya sea aws cli o s4cmd) es bastante lento. Aquí está mi HowTo que explica cómo analizar el Informe de uso de S3 usando bash one liner:
cat report.csv | awk -F, '{printf "%.2f GB %s %s \n", $7/(1024**3 )/24, $4, $2}' | sort -n
La consola de AWS no le mostrará esto, pero puede usar Bucket Explorer o Cloudberry Explorer para obtener el tamaño total de un bucket. Ambos tienen versiones gratuitas disponibles.
Nota: estos productos todavía tienen que obtener el tamaño de cada objeto individual, por lo que podría llevar mucho tiempo para cubos con muchos objetos.
Basado en la respuesta de @ 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]
Además, Cyberduck permite convenientemente calcular el tamaño de un cubo o una carpeta.
¡La respuesta de Mini John funcionó totalmente para mí! Impresionante ... tenía que agregar
--region eu-west-1
de Europa aunque
Esta es una pregunta antigua, pero como estaba buscando la respuesta, la encontré. Algunas de las respuestas me hicieron recordar que uso S3 Browser para administrar datos. Puede hacer clic en un cubo y presionar propiedades y le muestra el total. Bastante simple. Recomiendo encarecidamente el navegador: https://s3browser.com/default.aspx?v=6-1-1&fam=x64
Bueno, también puede hacerlo a través de un cliente S3 si prefiere una interfaz de usuario amigable para los humanos.
Yo uso CrossFTP , que es gratuito y multiplataforma, y allí puedes hacer clic derecho en el directorio de la carpeta -> seleccionar "Propiedades ..." -> hacer clic en el botón "Calcular" al lado de Tamaño y listo.
Usted preguntó: ¿ información en la consola de AWS sobre cuánto espacio en disco se está usando en mi nube S3 ?
Voy al Panel de facturación y verifico el uso de S3 en la factura actual .
Te dan la información - MTD - en Gb a 6 decimales, IOW, al nivel de Kb.
Está desglosado por región, pero sumarlos (asumiendo que usa más de una región) es bastante fácil.
Por cierto: es posible que necesite permisos de IAM específicos para acceder a la información de facturación.
Utilizo Cloud Turtle para obtener el tamaño de cubos individuales. Si el tamaño del depósito supera los 100 Gb, se necesitará un tiempo para mostrar el tamaño. Cloud Turtle es un programa gratuito.