Поиск по сайту:

Как составить список самых больших элементов в корзине S3 из терминала


Если вам интересны самые большие элементы в корзине AWS S3, вы можете использовать интерфейс командной строки, чтобы распечатать список, отсортированный по размеру. Это может помочь вам найти в ведре необычно большие объекты, которые могут занимать место.

Список и сортировка элементов с помощью интерфейса командной строки S3

S3 предоставляет некоторые встроенные параметры сортировки в меню, поэтому, если вы просто ищете самый большой элемент в папке, вы можете просто отсортировать эту папку. Однако, если вы хотите искать все элементы независимо от ключа, вам нужно будет сделать это из интерфейса командной строки AWS. Если он у вас не установлен, вы можете обратиться к нашему руководству по его настройке, чтобы настроить его.

Команда для вывода списка объектов довольно проста:

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

Выполнение этого запроса может занять некоторое время, так как он загружает основной список всех объектов и их метаданных, но вы получите массив JSON, содержащий запись для каждого элемента, как показано ниже:

        {
            "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"
            }
        }

Чтобы разобрать и отсортировать это, вы можете использовать jq — замечательную утилиту для работы с JSON в командной строке. Вы можете загрузить его из apt, хотя также доступны двоичные файлы:

sudo apt-get install jq

Это делает окончательную команду следующей, которая по-прежнему требует некоторого времени для оценки, но распечатывает самые большие 100 элементов в ведре:

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

Если вам нужно больше или меньше элементов, вы можете изменить входной параметр на команду head , которая обрезает все строки, кроме первых N.