Cómo enumerar los elementos más grandes en un bucket de S3 desde la terminal

Contenidos

Logotipo de AWS

Si tiene curiosidad con relación a los ítems más grandes en un bucket de AWS S3, puede utilizar la CLI para imprimir una lista ordenada por tamaño. Esto puede ayudarlo a ubicar objetos inusualmente grandes en el cubo que pueden estar ocupando espacio.

Listar y ordenar ítems con la CLI de S3

S3 proporciona algunas opciones de clasificación integradas en los menús, por lo que si solo está buscando el elemento más grande en una carpeta, simplemente puede ordenar esa carpeta. A pesar de esto, si desea buscar todos los ítems sin tener en cuenta la clave, deberá hacerlo desde la AWS CLI. Si no lo tiene instalado, puede consultar nuestra guía acerca de cómo configurarlo para configurarlo.

El comando para listar objetos es bastante simple:

aws s3api list-object-versions --bucket example-bucket

Esta consulta puede tardar un tiempo en evaluarse, dado que está descargando una lista maestra de todos los objetos y sus metadatos, pero obtendrá una matriz JSON que contiene una entrada para cada elemento, como la próxima:

        {
            "ETag": ""04e28fbee1ef2721123bb4e9a78183a895"",
            "Size": 320,
            "StorageClass": "STANDARD",
            "Key": "folder/file.json",
            "VersionId": "fNdwjJRaEjBYUSBgZe51oj_s4ONo5GsL",
            "IsLatest": false,
            "LastModified": "2020-11-05T18:59:18+00:00",
            "Owner": {
                "DisplayName": "username",
                "ID": "501092a155f88f4d174d7as3d2a347f33b9495f0261434682ab9a"
            }
        }

Para analizar y ordenar esto, puede utilizar jq – una fantástica utilidad para trabajar con JSON en la línea de comandos. Puedes descargarlo desde apt, aún cuando los binarios también están disponibles:

sudo apt-get install jq

Esto hace que el comando final sea el siguiente, que aún tardará un tiempo en evaluarse, pero imprimirá los 100 ítems más grandes del depósito:

aws s3api list-object-versions --bucket oxide.rust | jq -r '.Versions[] | "(.Key)t (.Size)"' | sort -k2 -r -n | head -100

Si desea más o menos ítems, puede cambiar el parámetro de entrada al head comando, que recorta todas las N líneas excepto las primeras.

Suscribite a nuestro Newsletter

No te enviaremos correo SPAM. Lo odiamos tanto como tú.