Timeweb Cloud CLI. Часть 1: S3
Салют! Не так давно компания Timeweb Cloud выпустила новую версию своего CLI (twc), который позволяет легко и удобно управлять всеми предоставляемыми ресурсами облачной платформы. В этой серии статей рассмотрим основные сценарии применения этого инструмента.
В данном материале речь пойдёт о работе с облачным объектным хранилищем S3 — это сервис для хранения любых данных в виде объектов, работа с которым осуществляется через программный интерфейс S3 API, в нём можно размещать любые типы статических данных.
Они будут храниться в одном месте и едином формате, и вы сможете в любой момент получать к ним доступ через API или графический интерфейс. Удобно размещать там, например, бэкапы, статические и медиа файлы, архивы, логи.
❯ Установка и настройка
Для установки twc (при наличии в системе python 3.7+ и пакетного менеджера pip) достаточно одной команды:
pip install twc-cli
Затем необходимо предоставить утилите доступ к нашему облаку, для этого требуется получить токен доступа в панели управления Timeweb Cloud, выпустить его можно в разделе «API и Terraform».
Далее откройте терминал и запустите команду:
twc config
Копируем токен и нажимаем Enter. Утилита сохранит на вашем компьютере конфигурационный файл с токеном, на этом её настройка завершена, можно начинать управлять сервисами.
❯ Начало работы
Прежде чем создать бакет, необходимо выбрать тариф, который определяет базовые параметры нашего хранилища: регион размещения, цену и доступный объём. Для этого мы можем получить список доступных пресетов (по умолчанию будет выбран минимальный тариф с 10 Гб диска):
twc s3 list-presets
ID REGION PRICE DISK
383 ru-1 639 250G
385 ru-1 1119 500G
387 ru-1 2079 1000G
389 ru-1 79 10G
471 ru-1 3999 2000G
473 ru-1 349 100G
Создать новый бакет:
twc s3 mb --preset-id 473 имя-бакета
По умолчанию создаётся приватный бакет, изменить его тип можно с помощью команды:
twc s3 set --type public имя-бакета
Кроме того к бакету можно привязать домен (если у него есть CNAME-запись s3.timeweb.com) и запросить SSL-сертификат Let’s Encrypt для него (продлеваться будет автоматически), на всё про всё потребуется две команды:
twc s3 subdomain add my-bucket.example.com имя-бакета
twc s3 subdomain gencert my-bucket.example.com
Подробнее про привязку доменов тут .
❯ Подготовка конфигурации для S3 клиента
twc не реализует методы S3 API, поэтому для работы с объектами внутри бакетов можно использовать готовые S3-клиенты такие как s3cmd или rclone, для конфигурации любого из них достаточно одной команды, например для rclone:
mkdir -p ~/.config/rclone
twc s3 genconfig --client rclone > ~/.config/rclone/rclone.conf
Наконец, всё готово, можно работать с бакетами по схеме twc, например для просмотра списка бакетов:
rclone ls twc:/
Или можно синхронизировать файлы между бакетом и локальной директорией:
rclone -P sync twc:<бакет> /root/test
❯ Итого
В этой статье мы рассмотрели использование CLI интерфейса от Timeweb для управления S3 хранилищем. Стоит отметить, что twc позволяет легко создавать новые бакеты с помощью готовых пресетов, генерировать конфигурацию для S3 клиентов и даже автоматически продлевать SSL сертификаты для бакетов, всё это вкупе с простым и понятным синтаксисом значительно облегчает работу.
Новости, обзоры продуктов и конкурсы от команды Timeweb.Cloud — в нашем Telegram-канале ↩