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