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 до версии 2.22.35 включительно.
Если вы используете более новую версию, то при загрузке объекта может возникать ошибка MissingContentLength.
Установите поддерживаемую версию AWS CLI.
Инструкция по установке
Linux:
bashcurl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64-2.22.35.zip" -o "awscliv2.zip" unzip awscliv2.zip sudo ./aws/installMacOS:
bashcurl "https://awscli.amazonaws.com/AWSCLIV2-2.22.35.pkg" -o "AWSCLIV2.pkg" sudo installer -pkg AWSCLIV2.pkg -target /Также вы можете установить AWS CLI с помощью менеджера пакетов brew:
bashbrew install awscliWindows:
Скачайте установочный файл https://awscli.amazonaws.com/AWSCLIV2-2.22.35.msi.
Дважды щелкните по файлу, и мастер установки проведет вас через весь процесс.Выполните команду:
bashaws 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-central1
endpoint_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 <ключ объекта>