Гид по технологиям

Как перечислить и отсортировать объекты S3 через CLI

3 min read AWS S3 Обновлено 26 Nov 2025
Отсортировать объекты S3 по размеру
Отсортировать объекты S3 по размеру

Логотип AWS

Быстрые ссылки

  • Listing and Sorting Items with the S3 CLI

Перечисление и сортировка объектов через S3 CLI

S3 предоставляет встроенные опции сортировки в веб‑консоли, поэтому для локального просмотра папки достаточно сортировки в интерфейсе. Но если нужно просмотреть все объекты в бакете (независимо от ключа), удобнее работать через AWS CLI. Если AWS CLI не установлен, настройте его согласно официальной документации перед выполнением команд.

Команда для получения списка объектов (пример):

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

Для больших бакетов этот запрос может выполняться длительно: AWS вернёт полный список объектов и их метаданные. В ответ вы получите 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 в командной строке. Установите её (пример для Debian/Ubuntu):

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.

Важно: для выполнения запросов потребуются права IAM на s3:ListBucket и, если включена версионность, s3:GetObjectVersion. Для очень больших бакетов CLI может занять много времени и памяти на клиенте.

Когда это не сработает

  • Бакеты с сотнями миллионов объектов: клиентская обработка JSON и сортировка могут быть неэффективны.
  • Если versioning отключён, команда list-object-versions не выдаст истории версий — используйте list-objects-v2.
  • Ограничения прав доступа (IAM) скрывают объекты от вывода.

Альтернативные подходы

  • S3 Inventory: периодические отчёты (CSV/Parquet) с метаданными объектов — подходит для масштабных анализов.
  • AWS Console: быстрый интерактивный просмотр и сортировка по папкам для небольших наборов.
  • Storage Lens: агрегированные отчёты и метрики по использованию хранилища.
  • Скрипты на SDK (Python, Go, JavaScript) с пагинацией и параллельной обработкой — контролируют потребление памяти и дают гибкость.

Мини-методология

  1. Оцените масштаб бакета и включён ли versioning.
  2. Выберите правильную команду: list-object-versions или list-objects-v2.
  3. Получите вывод через AWS CLI и сохраните в файл при необходимости.
  4. Разберите JSON через jq или SDK, извлеките пары (Key, Size).
  5. Отсортируйте по Size, примените фильтры по префиксу или StorageClass.
  6. Проверьте найденные крупные объекты и примите решения об оптимизации (архивирование, удаление, переход в Glacier).

Контрольный список по ролям

  • Администратор:
    • Проверил IAM-политики и логи доступа.
    • Предоставил/проверил права на выполнение list и get.
  • DevOps / инженер:
    • Установил jq и написал скрипт для регулярного анализа.
    • Настроил лимит вывода (head) и логирование.
  • SRE:
    • Оценил влияние операций на сеть и клиент.
    • Рассмотрел S3 Inventory для регулярных автоматизированных отчётов.

1-строчное глоссарий

  • jq — утилита для фильтрации и трансформации JSON в командной строке.
  • Versioning — режим версионности объектов в бакете S3.
  • ETag — контрольная сумма/идентификатор объекта, часто MD5 при загрузке целиком.

Резюме

AWS CLI в связке с jq даёт простой и воспроизводимый способ найти крупнейшие объекты в бакете S3. Для разовых или мелких задач достаточно консоли. Для регулярного анализа больших объёмов предпочтительнее S3 Inventory или скрипты на SDK с пагинацией.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

RDP: полный гид по настройке и безопасности
Инфраструктура

RDP: полный гид по настройке и безопасности

Android как клавиатура и трекпад для Windows
Гайды

Android как клавиатура и трекпад для Windows

Советы и приёмы для работы с PDF
Документы

Советы и приёмы для работы с PDF

Calibration в Lightroom Classic: как и когда использовать
Фото

Calibration в Lightroom Classic: как и когда использовать

Отключить Siri Suggestions на iPhone
iOS

Отключить Siri Suggestions на iPhone

Рисование таблиц в Microsoft Word — руководство
Office

Рисование таблиц в Microsoft Word — руководство