Hoe de grootste items in een S3-emmer van Terminal te vermelden?

0
188

Als je nieuwsgierig bent naar de grootste items in een AWS S3 bucket, kunt u de CLI gebruiken om een ​​op grootte gesorteerde lijst af te drukken. Dit kan u helpen ongebruikelijk grote objecten in de emmer te lokaliseren die mogelijk ruimte innemen.

Items weergeven en sorteren met de S3 CLI

< p>S3 biedt een aantal ingebouwde sorteeropties in de menu's, dus als je alleen op zoek bent naar het grootste item in een map, kun je die map eenvoudig sorteren. Als u echter naar alle items wilt zoeken, ongeacht de sleutel, moet u dit doen vanuit de AWS CLI. Als je dat niet hebt geïnstalleerd, kun je onze handleiding raadplegen over het configureren om het in te stellen.

De opdracht voor het weergeven van objecten is vrij eenvoudig:

aws s3api list-object -versions –bucket voorbeeld-bucket

Deze query kan even duren om te evalueren, aangezien het een hoofdlijst van alle objecten en hun metadata downloadt, maar je krijgt een JSON-array met een item voor elk item, zoals het volgende:

{ “ETag”: “”04e28fbee1ef2721123bb4e9a78183a895″”, “Size”: 320, “StorageClass”: “STANDARD”, “Key”: “folder/file.json”, “VersionId”: “fNdwjJRaEjBYUSBgZe515G_sL4ONoIsLasLs4ONoIsLa “: false, “LastModified”: “2020-11-05T18:59:18+00:00”, “Owner”: { “DisplayName”: “gebruikersnaam”, “ID”: “501092a155f88f4d174d7as3d2a347f33b9495f0261434682ab9a” } }

Aan ontleden en sorteren, kunt u jq — een fantastisch hulpprogramma voor het werken met JSON op de opdrachtregel. Je kunt het downloaden van apt, hoewel er ook binaire bestanden beschikbaar zijn:

sudo apt-get install jq

Dit maakt het laatste commando het volgende, dat nog even zal duren om te evalueren, maar de grootste 100 zal afdrukken items in de emmer:

aws s3api list-object-versions –bucket oxide.rust | jq -r '.Versies[] | “(.Sleutel)t (.Grootte)”' | sorteer -k2 -r -n | head -100 Advertentie

Als je meer of minder items wilt, kun je de invoerparameter wijzigen in het head-commando, waarmee alle regels behalve de eerste N worden bijgesneden.