AWS CLI — это интерфейс командной строки для работы с сервисами AWS.
Установка AWS CLI
Для установки AWS CLI воспользуйтесь официальной документацией:
Перед началом работы
Чтобы настроить AWS CLI, вам потребуются ключи доступа к хранилищу S3. Чтобы посмотреть доступы:
-
1
Войдите в личный кабинет Рег.ру.
-
2
Перейдите в раздел Облако Рег.ру.
-
3
Выберите Хранилище S3.
-
4
Перейдите в раздел Подключение. Там вы найдете ключи доступа к хранилищу S3:
Настройка AWS CLI
-
1
В терминале выполните команду:
aws configure
-
2
Укажите значения для следующих параметров:
- AWS Access Key ID — введите идентификатор ключа Access key,
- AWS Secret Access Key — введите секретный ключ Secret access key,
- Default region name — оставьте значение по умолчанию или укажите регион из официальной документации,
- Default output format — оставьте значение по умолчанию или укажите формат, например, json.
После этого вы сможете использовать команды AWS. Например, посмотреть список бакетов можно с помощью команды:
aws --endpoint-url=https://{{ s3-storage-host }} s3 ls
Добавление endpoint_url в настройки конфигурации
По умолчанию AWS CLI работает с серверами Amazon Web Storage. Поэтому каждый раз, когда вы используете команду aws
, необходимо указывать параметр --endpoint-url=https://{{ s3-storage-host }}
. Чтобы не прописывать его вручную, добавьте глобальный URL-адрес конечной точки в конфигурационный файл:
-
1
В командной строке с помощью текстового редактора (например, nano) откройте файл
.aws/config
. -
2
Добавьте параметр:
endpoint_url = https://{{ s3-storage-host }}
Где https://{{ s3-storage-host }} — значение S3 API Endpoint. Посмотреть его можно по инструкции выше.
-
3
Сохраните изменения.
После этого вы сможете выполнять команды без указания глобального URL-адреса конечной точки. Например, вместо aws --endpoint-url=https://{{ s3-storage-host }} s3 ls
достаточно будет ввести команду aws s3 ls
.
Основные команды AWS CLI
- Посмотреть список бакетов:
aws s3 ls
- Загрузить объект из локальной директории в бакет:
aws s3 cp C:/path_to_local_dir/object_id s3://bucket_name/object_id
Результат:
upload: ./object_id to s3://bucket_name/object_id
- Загрузить все объекты из локальной директории в бакет:
aws s3 cp --recursive C:/path_to_local_dir/ s3://bucket_name/
Результат:
upload: path_to_local_dir/object_id to s3://bucket_name/object_id
- Загрузить все объекты из локальной директории в бакет с указанием фильтра:
aws s3 cp --recursive --exclude "*" --include "*.log" local_files/ s3://bucket_name/
Результат:
upload: path_to_local_dir/object_id to s3://bucket_name/object_id
- Получить список объектов в бакете:
aws s3 ls s3://bucket_name
- Скопировать объект из одного бакета в другой:
aws s3 cp s3://bucket_name_1/object_id s3://bucket_name_2/object_id
Результат:
copy: s3://bucket_name_1/object_id to s3://bucket_name_2/object_id
- Переместить объект из одного бакета в другой:
aws s3 mv s3://bucket_name_1/object_id s3://bucket_name_2/object_id
Результат:
move: s3://bucket_name_1/object_id to s3://bucket_name_2/object_id
- Переименовать объект в бакете:
aws s3 mv s3://bucket_name/object_key_old s3://bucket_name/object_key_new
Результат:
move: s3://bucket_name_1/object_id to s3://bucket_name_2/object_id
- Удалить объект в бакете:
aws s3 rm s3://bucket_name/object_key
Результат:
delete: s3://bucket_name/object_key
- Удалить все объекты в бакете:
aws s3 rm s3://bucket_name/ --recursive
Результат:
delete: s3://bucket_name/object_key_1 delete: s3://bucket_name/object_key_2 …
- Удалить все объекты в бакете с указанием фильтра:
aws s3 rm s3://bucket_name/ --recursive --exclude "*" --include "*.log"
Результат:
delete: s3://bucket_name/object_key_1 delete: s3://bucket_name/object_key_2 …
- Загрузить объект в локальную директорию:
aws s3 cp s3://bucket_name_1/object_id path_to_local_dir/object_id
Результат:
download: s3://bucket_name_1/object_id to path_to_local_dir/object_id
Помогла ли вам статья?
Спасибо за оценку. Рады помочь 😊