AWS CLI
AWS CLI — консольная утилита для управления сервисами AWS. Подробное руководство по работе доступно на сайте Amazon.
В работе с Object Storage можно использовать два набора команд:
- s3api — команды, которые соответствуют вызовам REST API;
- s3 — дополнительные команды для работы с бакетами и объектами.
Подготовка к работе
Заголовок раздела «Подготовка к работе»- Cоздайте сервисный аккаунт.
- Назначьте сервисному аккаунту роль
storage.bucket.editorили выше. - Создайте HMAC-ключ.
- Скопируйте и сохраните обе части HMAC-ключа:
Access keyиSecret key.
Настройка AWS CLI
Заголовок раздела «Настройка AWS CLI»Установите AWS CLI.
- Linux
- MacOS
- Windows
bash curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"unzip awscliv2.zipsudo ./aws/installТакже вы можете установить AWS CLI с помощью менеджера пакетов
snap:bash snap install aws-cli --classicВыполните команду:
bash aws configureВведите следующие параметры:
AWS Access Key ID— значениеAccess keyиз HMAC-ключа (пример —_Ukpnpw3RiCx3iuPhn-t);AWS Secret Access Key— значениеSecret keyиз HMAC-ключа (пример —3LIK2LbwYqER7oGr3cX4WSC31YN83yZnDgcXyjewX);Default region name— регион по умолчанию (укажитеru-central1);Default output format— формат вывода по умолчанию (json,textилиtable), см. подробнее в документации Amazon.
Конфигурационные файлы
Заголовок раздела «Конфигурационные файлы»Обе части HMAC-ключа — Access key и Secret key по умолчанию сохраняются в конфигурационном файле .aws/credentials в секции default, например:
[default]aws_access_key_id = _Ukpnpw3RiCx3iuPhn-t #Access key из HMAC-ключаaws_secret_access_key = 3LIK2LbwYqER7oGr3cX4WSC31YN83yZnDgcXyjewX #Secret key из HMAC-ключаРегион по умолчанию и эндпоинт будут сохранены в конфигурационном файле ./aws/config в секции default:
[default]region = ru-central1endpoint_url = https://storage.mwsapis.ruПри необходимости вы можете создать несколько профилей для разных учетных записей. Для этого укажите настройки для каждого профиля в конфигурационном файле .aws/credentials:
[default]aws_access_key_id = <Access key>aws_secret_access_key = <Secret key>
[profile1]aws_access_key_id = <Access key1>aws_secret_access_key = <Secret key1>
[profile2]aws_access_key_id = <Access key2>aws_secret_access_key = <Secret key2>Профиль, указанный в секции default, используется в качестве профиля по умолчанию. Чтобы переключаться между профилями, используйте в командах AWS CLI опцию --profile. Например, приведенная ниже команда создаст бакет bucket1 от имени пользователя с профилем profile1:
aws --profile=profile1 s3 mb s3://bucket1Примеры команд
Заголовок раздела «Примеры команд»Создать бакет
Заголовок раздела «Создать бакет»aws s3 mb s3://<имя_бакета>aws s3api create-bucket --bucket <имя_бакета>Загрузить объект в бакет
Заголовок раздела «Загрузить объект в бакет»aws s3 cp <путь_к_локальному_файлу>/ s3://<имя_бакета>/<ключ_объекта>aws s3api put-object --bucket <имя_бакета> --key <ключ объекта> --body <путь клокальному_файлу>Скачать объект из бакета
Заголовок раздела «Скачать объект из бакета»aws s3 cp s3://<имя бакета>/<ключ ключ объекта> <путь для сохранения файла>aws s3api get-object --bucket <имя бакета> --key <ключ объекта> <путь для сохранения файла>Получить список объектов в бакете
Заголовок раздела «Получить список объектов в бакете»aws s3 ls --recursive s3://<имя бакета>aws s3api list-objects-v2 --bucket <имя бакета>Удалить объект
Заголовок раздела «Удалить объект»aws s3 rm s3://bucket/objectaws s3api delete-object --bucket <имя бакета> --key <ключ объекта>