Пропустить до содержимого

AWS CLI инструмент

AWS Command Line Interface (AWS CLI) — это бесплатный интерфейс командной строки для работы с сервисами AWS.

Установка

Для установки AWS CLI® воспользуйтесь инструкцией на сайте разработчика.

Настройка

Для настройки клиента AWS CLI необходимо запустить команду:

aws configure

Настройки будут сохранены в конфигурационных файлах: учетные данные в .aws/credentials:

[default]
aws_access_key_id = <id>
aws_secret_access_key = <secretKey>

пул по умолчанию в .aws/config:

[default]
region = default

Особенности работы с хранилищем

Поскольку AWS CLI по умолчанию настроен на работу с серверами Amazon, необходимо при запуске команды aws указывать параметр --endpoint-url. Например:

aws --endpoint-url=https://s3.adman.com s3 ls

Чтобы при каждом запуске не указывать параметр вручную, можно добавить настройку в файл конфигурации .aws/credentials параметра endpoint_url:

[default]
aws_access_key_id = <id>
aws_secret_access_key = <secretKey>
endpoint_url = https://s3.adman.com

После этого, вы сможете работать с командой aws не указывая параметр --endpoint-url

Примеры операций

Создать бакет

aws s3 mb s3://bucket-name

Результат:

make_bucket: bucket-name

Загрузить объекты

Можно загрузить все объекты из локальной папки, использовать фильтр или загрузить объекты по одному.

  • Загрузить все объекты из локальной папки:
aws s3 cp --recursive local_files/ s3://bucket-name/path_style_prefix/

Результат:

upload: ./textfile1.log to s3://bucket-name/path_style_prefix/textfile1.log
upload: ./textfile2.txt to s3://bucket-name/path_style_prefix/textfile2.txt
upload: ./prefix/textfile3.txt to s3://bucket-name/path_style_prefix/prefix/textfile3.txt
  • Загрузить объекты, описанные в фильтре —include, и пропустить объекты, описанные в фильтре —exclude:
aws s3 cp --recursive --exclude "*" --include "*.log" \
local_files/ s3://bucket-name/path_style_prefix/

Результат:

upload: ./textfile1.log to s3://bucket-name/path_style_prefix/textfile1.log
  • Загрузить объекты по одному, запуская для каждого объекта команду следующего вида:
aws s3 cp testfile.txt s3://bucket-name/path_style_prefix/textfile.txt

Результат:

upload: ./testfile.txt to s3://bucket-name/path_style_prefix/textfile.txt

Получить список объектов

aws s3 ls --recursive s3://bucket-name

Результат:

2022-09-05 17:10:34 10023 other/test1.png
2022-09-05 17:10:34 57898 other/test2.png
2022-09-05 17:10:34 704651 test.png

Удалить объекты

Можно удалить объекты с заданным префиксом, использовать фильтр или удалить объекты по одному.

  • Удалить все объекты с заданным префиксом:
aws s3 rm s3://bucket-name/path_style_prefix/ --recursive

Результат:

delete: s3://bucket-name/path_style_prefix/test1.png
delete: s3://bucket-name/path_style_prefix/subprefix/test2.png
  • Удалить объекты, описанные в фильтре —include, и пропустить объекты, описанные в фильтре—exclude:
aws s3 rm s3://bucket-name/path_style_prefix/ --recursive \
--exclude "*" --include "*.log"

Результат:

delete: s3://bucket-name/path_style_prefix/test1.log
delete: s3://bucket-name/path_style_prefix/subprefix/test2.log
  • Удалить объекты по одному, запуская для каждого объекта команду следующего вида:
aws s3 rm s3://bucket-name/path_style_prefix/textfile.txt

Результат:

delete: s3://bucket-name/path_style_prefix/textfile.txt

Получить объект

aws s3 cp s3://bucket-name/textfile.txt textfile.txt

Результат:

download: s3://bucket-name/path_style_prefix/textfile.txt to ./textfile.txt