AWS CLI: S3 `ls` — Список Корзин & Объектов

Amazon Simple Storage Service (S3) хранит данные в виде обьектов (англ. objects) в ресурсах под названием корзины (англ. buckets).

Каждый объект в Amazon S3 состоит из ключа (имени файла), данных и метаданных, описывающих этот объект.

Amazon S3 позволяет хранить и извлекать данные через API по HTTPS из командной строки с помощью AWS CLI.

В этой заметке я покажу, как вывести список Amazon S3-корзин и объектов с помощью команды aws s3 ls в AWS CLI..

Список S3-Корзин в AWS

Вывести список всех S3-корзин, принадлежащих текущему пользователю:

$ aws s3 ls

Вывести список S3-корзин, доступных указанному профилю:

$ aws --profile <profile_name> s3 ls

Профиль По Умолчанию: Каждый раз, когда вы хотите указать AWS-профиль для использования, вы должны вызывать команду AWS с параметром --profile или вы можете установить переменную окружения AWS_DEFAULT_PROFILE. Если эта переменная не задана или параметр --profile не установлен, то AWS CLI будет использовать профиль с именем default.

Список Объектов в S3-Корзине в AWS

Вывести список объектов в S3-корзине:

$ aws s3 ls s3://<bucket_name>

Список объектов в указанной «папке» в S3-корзине:

$ aws s3 ls s3://<bucket_name>/<folder_name>/

Папки в S3-Корзине: На самом деле, в S3-корзинах не существует понятия папок. В отличии от иерархической файловой системы, Amazon S3 имеет плоскую структуру. Иллюзия файлов внутри папок внутри других папок вызвана именами файлов вида: dirA/dirB/file.

Перечислить все объекты в корзине S3, включая все файлы во всех «папках», с их размерами в удобочитаемом формате и summary в конце (количеством объектов и общим размером):

$ aws s3 ls --recursive --summarize --human-readable s3://<bucket_name>

С помощью аналогичного запроса можно также перечислить все объекты только в указанной «папкой»:

$ aws s3 ls --recursive --summarize --human-readable s3://<bucket_name>/<folder_name>/

Обратите Внимание: Слеш (/) в конце имени «папки» в приведенных выше примерах — обязателен.