S3 CLI или интерфейс командной строки S3 – это единый инструмент для управления сервисами S3. С его помощью можно контролировать большое количество сервисов LinxCloud S3 из командной строки и автоматизировать их при помощи скриптов.
С помощью простой настройки интерфейса командной строки S3 можно запускать команды из командной строки в программе терминала:
- Оболочки Linux — общие программы оболочки, такие как bash, zsh, и tcsh для выполнения команд в Linux или macOS.
- Командная строка Windows — в Windows запускаются команды из командной строки Windows или в PowerShell.
Это руководство можно использовать для обеих доступных версиях S3 CLI, если не указано иное.
- Версия 2.x — текущая общедоступная версия интерфейса командной строки S3, предназначенная для использования в производственных средах.
- Версия 1.x — предыдущая версия интерфейса командной строки AWS, доступная для обеспечения обратной совместимости.
Подробнее о командах и дополнительных настройках CLI можно прочитать на сайте разработчика.
Установка CLI
Чтобы установить S3 CLI v2 в операционной системе нужно установить соответствующий пакет:
Linux
Для установки требуется:
Возможность извлечь или «разархивировать» загруженный пакет. Если операционной системе нет встроенной unzip команды, следует использовать эквивалент.
В AWS CLI версии 2 использует glibc, groff и less. Они включены по умолчанию в большинство основных дистрибутивов Linux.
Для Linux x86 (64-бит):
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"unzip awscliv2.zipsudo ./aws/install
curl "https://awscli.amazonaws.com/awscli-exe-linux-aarch64.zip" -o "awscliv2.zip"unzip awscliv2.zipsudo ./aws/install
Проверить корректность установки:
aws --version
MacOS
Чтобы установить на MacOS необходимо:
1. Загрузить в браузере файл macOS pkg.
2. Дважды щелкнуть загруженный файл, чтобы запустить установщик.
3. Следовать инструкциям на экране.
Проверить корректность установки можно в терминале:
aws --version
Windows
Прежде чем устанавливать AWS CLI версии 2 в Windows, нужно убедиться, что есть:
- 64-разрядная версия Windows XP или новее.
- Права администратора на установку программного обеспечения
Для установки:
Загрузить установщик MSI AWS CLI для Windows (64-разрядная версия).
Запустить загруженный установщик MSI и следовать инструкциям на экране. По умолчанию интерфейс командной строки AWS устанавливается в C:\Program Files\Amazon\AWSCLIV2.
Чтобы подтвердить установку, можно использовать интерфейс стандартной командной строки Windows (cmd):
aws --version
Получение доступа к cli
Ключи доступа — это идентификатор ключа доступа и секретного ключа доступа, которые нужны для подписи программных запросов, отправляемых в LinxCloud.
Восстановить ключи нельзя, но в любое время можно создать новые через Панель управления LinxCloud:
- зайти в меню «Аккаунты» сервиса «Объектное хранилище»;
- добавить аккаунт;
- сохранить полученные ключи для дальнейшего использования.
Настройка CLI
Самый быстрый способ настроить установку AWS CLI — с помощью команды:
aws configure
При вводе этой команды интерфейс командной строки AWS запрашивает четыре части информации:
- Идентификатор ключа доступа — используются полученные данные идентификатора ключа при добавлении аккаунта.
- Секретный ключ доступа — используются полученные данные секретного ключа при добавлении аккаунта.
- AWS регион — регион размещения сервиса S3, по умолчанию это ru-msk.
- Выходной формат — определяет как отформатировать вывод используемой команды. Если не будет указан выходной формат, будет использовать json по умолчанию. Доступные варианты: json, yaml, текст и таблица.
Интерфейс командной строки AWS хранит эту информацию в профиле (наборе настроек), названном default в credentials файле. По умолчанию информация в этом профиле используется, когда запускается команда интерфейса командной строки AWS, в которой явно не указывается используемый профиль.
Особенности
При использовании AWS CLI для работы с Объектным хранилищем нужно учитывать его особенности:
- AWS CLI работает с LinxCloud S3 как с иерархической файловой системой и ключи объектов имеют вид пути к файлу.
- При запуске команды aws для работы с LinxCloud S3 обязателен параметр —endpoint-url, поскольку по умолчанию клиент настроен на работу с серверами Amazon.
- Создание бакета следует выполнять используя соответствующий —endpoint-url — https://hb.bizmrg.com для бакета Hotbox и https://ib.bizmrg.com для бакета Icebox.
- Выполнение любых операций при использовании CLI с классом бакета Backup невозможно.
- При использовании классов хранения —storage-class применяются значения STANDARD для Hotbox и STANDARD_IA для Icebox.
- При работе в MacOS, в некоторых случаях требуется запуск вида:
export PYTHONPATH=/Library/Python/2.7/site-packages; aws s3 less-than-sign командаgreater-than --endpoint-url=https://hb.bizmrg.com
Примеры использования
aws s3 mb s3://less-than-sign имя_бакетаgreater-than --endpoint-url https://hb.bizmrg.com
aws s3 mb s3://less-than-sign имя_бакетаgreater-than --endpoint-url https://ib.bizmrg.com
Изменение класса хранения бакета:
aws s3api create-bucket --bucket less-than-sign имя_бакетаgreater-than --endpoint-url --cli-input-json "{\"Bucket\": {\"storage-class\": \"less-than-sign значение_класса_назначенияgreater-than \"}}"
aws s3 cp less-than-sign путь_к_локальному_файлуgreater-than s3://less-than-sign имя_бакетаgreater-than --endpoint-url https://hb.bizmrg.com
aws s3 cp s3://less-than-sign имя_бакетаgreater-than /less-than-sign название_ключаgreater-than less-than-sign путь_к_локальному_файлуgreater-than --endpoint-url https://hb.bizmrg.com
Синхронизация локальной директории с бакетом
aws s3 sync less-than-sign локальная_директорияgreater-than s3://less-than-sign имя_бакетаgreater-than --endpoint-url https://hb.bizmrg.com
aws s3 mv s3://less-than-sign имя_бакетаgreater-than /less-than-sign название_ключа_источникаgreater-than s3://less-than-sign имя бакетаgreater-than /less-than-sign название_ключа_назначенияgreater-than --endpoint-url https://hb.bizmrg.com
Получение списка объектов
aws s3 ls s3://less-than-sign имя_бакетаgreater-than --endpoint-url https://hb.bizmrg.com
aws s3 rm s3://less-than-sign имя_бакетаgreater-than /less-than-sign название_ключаgreater-than --endpoint-url https://hb.bizmrg.com
Удаление многокомпонентного объекта
aws s3api abort-multipart-upload --bucket less-than-sign имя_бакетаgreater-than --endpoint-url https://hb.bizmrg.com --key large_test_file --upload-id