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.logupload: ./textfile2.txt to s3://bucket-name/path_style_prefix/textfile2.txtupload: ./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.png2022-09-05 17:10:34 57898 other/test2.png2022-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.pngdelete: 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.logdelete: 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