База знаний LinxCloud Services

S3 CLI

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.zip
sudo ./aws/install

Для Linux ARM

curl "https://awscli.amazonaws.com/awscli-exe-linux-aarch64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./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 <команда> --endpoint-url=https://hb.bizmrg.com

 

Примеры использования

Создание бакета hotbox:

aws s3 mb s3://<имя_бакета> --endpoint-url https://hb.bizmrg.com

Создание бакета icebox:

aws s3 mb s3://<имя_бакета> --endpoint-url https://ib.bizmrg.com

Изменение класса хранения бакета:

aws s3api create-bucket --bucket <имя_бакета> --endpoint-url <URL класса хранения назначения> --cli-input-json "{\"Bucket\": {\"storage-class\": \"<значение_класса_назначения>\"}}"

Загрузка файла

aws s3 cp <путь_к_локальному_файлу> s3://<имя_бакета> --endpoint-url https://hb.bizmrg.com

Скачивание объекта

aws s3 cp s3://<имя_бакета>/<название_ключа> <путь_к_локальному_файлу> --endpoint-url https://hb.bizmrg.com

Синхронизация локальной директории с бакетом

aws s3 sync <локальная_директория> s3://<имя_бакета> --endpoint-url https://hb.bizmrg.com

Перемещение объекта

aws s3 mv s3://<имя_бакета>/<название_ключа_источника> s3://<имя бакета>/<название_ключа_назначения> --endpoint-url https://hb.bizmrg.com

Получение списка объектов

aws s3 ls s3://<имя_бакета> --endpoint-url https://hb.bizmrg.com

Удаление объекта

aws s3 rm s3://<имя_бакета>/<название_ключа> --endpoint-url https://hb.bizmrg.com

Удаление многокомпонентного объекта

aws s3api abort-multipart-upload --bucket <имя_бакета> --endpoint-url https://hb.bizmrg.com --key large_test_file --upload-id <ID_объекта_многокомпонентной_загрузки>
Что вас интересует?
Получить демо-доступ

Спасибо за ваш запрос, мы свяжемся с вами в ближайшее время!