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.