Civo Object Storage по S3 на macOS.
Региональный endpoint, рабочая конфигурация для s3cmd, rclone и AWS CLI и то, что нативный клиент делает иначе.
Civo Object Storage говорит на S3, поэтому подключиться может почти любой клиент S3, как только сойдутся две вещи: endpoint того региона, где живёт store, и доступ, созданный в том же регионе. Документация Civo проводит вас через s3cmd, а остальной инструментарий оставляет вам. Здесь голая конфигурация для s3cmd, rclone и AWS CLI, а следом путь CivoCloudManager, который читает endpoint и ключи доступа прямо из Civo API, так что настраивать руками нечего.
Настройка клиента S3 под Civo
-
01
Найдите endpoint своего региона.
Civo собирает endpoint object store как
https://objectstore.<region>.civo.comс кодом региона в нижнем регистре, поэтому store в Лондоне доступен поhttps://objectstore.lon1.civo.com, а во Франкфурте поhttps://objectstore.fra1.civo.com. Каждый store к тому же печатает собственный endpoint в дашборде Civo и возвращает его в полеobjectstore_endpointв REST API. По обзору возможностей регионов у Civo, object stores есть в LON1, FRA1, NYC1 и MUM1, и нет в PHX1. -
02
Создайте доступ в том же регионе.
Каждый Civo object store приватный, ему нужны access key ID и secret key. Создайте доступ в дашборде Civo в разделе Object Stores, пока селектор региона стоит на регионе этого store, либо через Civo CLI. Команда civo objectstore credential export
-a<access_key>печатает пару какAWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY,AWS_DEFAULT_REGIONиAWS_HOST, готовые к вставке в шелл. -
03
s3cmd: host_base и host_bucket.
В
~/.s3cfg, в секции [default], задайтеhost_base=objectstore.fra1.civo.com,host_bucket=objectstore.fra1.civo.com,bucket_location= fra1,use_https= True,signature_v2= False, плюсaccess_keyиsecret_key. Одинаковый хост вhost_bucketиhost_baseудерживает s3cmd на path style адресации, а именно на неё Civo и отвечает. Дальше s3cmd ls перечисляет ваши stores, s3cmd ls s3://STORENAME содержимое одного, s3cmd put file.tar s3://STORENAME/backups/ загружает, а s3cmd get-rs3://STORENAME/backups/ тянет вниз целый префикс. Без файла конфигурации те же два значения уходят в командную строку как--host=и--host-bucket=. -
04
rclone: remote типа s3, provider Other.
Запустите rclone config и выберите s3 или впишите блок прямо в
~/.config/rclone/rclone.conf: под [civo] задайте type = s3, provider = Other,env_auth= false,access_key_idиsecret_access_keyиз доступа, region = fra1, endpoint =https://objectstore.fra1.civo.comи acl = private. После этого rclone lsd civo: перечисляет stores, rclone ls civo:STORENAME объекты, rclone copy ./dir civo:STORENAME/dir -P синхронизирует папку наверх с прогрессом, а rclone ncdu civo:STORENAME даёт текстовый браузер. Те же настройки работают разовыми флагами:--s3-providerOther--s3-endpointhttps://objectstore.fra1.civo.com--s3-regionfra1. -
05
AWS CLI: --endpoint-url в каждом вызове.
AWS CLI не нужен плагин под Civo, нужен только endpoint в каждой команде: aws s3 ls
--endpoint-urlhttps://objectstore.fra1.civo.com, затем aws s3 ls s3://STORENAME--endpoint-url... и aws s3 cp file.tar s3://STORENAME/--endpoint-url... . Доступы берутся изAWS_ACCESS_KEY_IDиAWS_SECRET_ACCESS_KEYили из именованного профиля, аAWS_DEFAULT_REGIONставится в код региона Civo, чтобы совпала область действия Signature V4. Сноска про свежие версии: начиная с AWS CLI 2.23 к загрузкам по умолчанию добавляется контрольная сумма CRC64NVME, которую принимает не каждый S3-совместимый endpoint, поэтому если put падает с ошибкой контрольной суммы, выставьте AWS_REQUEST_CHECKSUM_CALCULATION=when_required и AWS_RESPONSE_CHECKSUM_VALIDATION=when_required.
Ловушка ценой в час: ключи привязаны к одному региону
Документация Civo говорит об этом прямо, двумя предложениями, которые легко проскочить: object stores привязаны к региону, и доступы для управления ими и подключения к ним привязаны к региону, в котором были созданы. Ключ, сделанный, пока дашборд стоял на FRA1, не пройдёт аутентификацию на endpoint LON1, хотя аккаунт тот же и счёт тот же. Симптом это ошибка аутентификации или подписи, похожая на опечатку в секрете, поэтому первым делом хочется перевыпустить ключ, а получается ещё один ключ в том же неверном регионе. Сначала проверьте селектор региона, создайте доступ рядом со store и только потом подозревайте конфигурацию.
Чего командная строка не закрывает
Для скриптов, бэкапов и CI правильный ответ это s3cmd, rclone и AWS CLI, и ничто здесь их не заменяет. Чего они не дают, так это взгляда на store: дерева папок, размеров одним взглядом, выделения, которое можно вытащить наружу. Обычные клиенты S3 для Mac вроде Cyberduck или Transmit эту дыру закрывают, но про Civo они не знают ничего, поэтому endpoint вы вводите сами, оба ключа вставляете на каждый store и после каждой ротации приводите их в порядок руками.
Путь приложения: endpoint вводить негде
CivoCloudManager один раз аутентифицируется вашим Civo API key и читает список object stores из Civo REST API v2, а тот уже несёт и endpoint, и связанный доступ для каждого store. Из этого и собирается клиент S3, поэтому нет ни поля endpoint, ни вставки ключей, ни файла конфигурации. Слой S3 написан на чистом Swift: AWS Signature V4 считается через HMAC-SHA256 из CryptoKit, без AWS SDK и без Electron. Он умеет ListObjects v2 с continuation tokens, навигацию по хлебным крошкам поверх общих префиксов, множественное выделение и рекурсивное скачивание папки со строкой прогресса. Если честно про форму: браузер читает и скачивает. Загрузка и удаление остаются за s3cmd или rclone. Приложению нужна macOS 15 или новее.
Ключи доступа под Touch ID вместо dotfile
Ради этого стоит поставить приложение, даже если CLI вы не бросаете. Рабочая настройка s3cmd означает, что secret key лежит открытым текстом в ~/.s3cfg, и то же верно для rclone.conf и ~/.aws/credentials. Любой процесс от вашего пользователя прочитает все три, как и всё, что пройдётся по домашней папке. CivoCloudManager держит Civo API key в macOS Keychain, а чтобы показать в интерфейсе secret access key от object store, сначала спросит Touch ID или системный пароль. Ограничение очевидно, и его стоит проговорить: в ту секунду, когда вы копируете ключ в терминал, это снова файл открытым текстом.
Пауза и возврат для store, которыми вы не пользуетесь
Простаивающий store всё равно тарифицируется по выделенному размеру. Пауза копирует все объекты в центральный object store с именем civo-cloud-manager, при нехватке места сперва наращивая это хранилище, сверяет скопированные ключи и размеры с источником и удаляет исходный store только при совпадении. Строка исчезает из счёта Civo. Возврат пересоздаёт store под тем же именем с тем же доступом, копирует объекты назад, снова сверяет ключи и размеры, а потом чистит хранилище. Одновременно переносится до четырёх объектов. Честные ограничения: проверка сравнивает имена и размеры, а не хеши содержимого, объекты при переносе буферизуются в памяти целиком, а удалённый manifest пишется уже после удаления источника, с локальным manifest как запасным вариантом.
Какой клиент под какую задачу
Все четверо говорят с одним и тем же S3 API на одном и том же endpoint. Разница в том, где лежит конфигурация, куда попадает секрет и что вы можете увидеть.
| Задача | s3cmd | rclone | AWS CLI | CivoCloudManager |
|---|---|---|---|---|
| Настройка endpoint | host_base и host_bucket в ~/.s3cfg | endpoint в самом remote | --endpoint-url в каждом вызове | читается из Civo API |
| Куда попадает secret key | ~/.s3cfg, открытым текстом | rclone.conf, открытым текстом | ~/.aws/credentials, открытым текстом | macOS Keychain, показ под Touch ID |
| Визуальный просмотр store | нет | rclone ncdu, текстовый режим | нет | да, браузер с хлебными крошками |
| Загрузка и удаление объектов | да | да | да | не в браузере |
| Рекурсивное скачивание папки | s3cmd get -r | rclone copy | aws s3 cp --recursive | да, с прогрессом |
| Пауза простаивающего store, чтобы не платить | нет | нет | нет | да, хранилище с проверкой перед удалением |
| Работает в CI | да | да | да | нет, это приложение для Mac |
Civo Object Storage по S3: ответы
- Какой endpoint URL у Civo object storage?
- Endpoint object store у Civo строится по шаблону
https://objectstore.<region>.civo.comс кодом региона в нижнем регистре, напримерhttps://objectstore.lon1.civo.comв Лондоне илиhttps://objectstore.fra1.civo.comво Франкфурте. Endpoint зависит от региона, в котором store был создан. Каждый store к тому же показывает свой endpoint в дашборде Civo и возвращает его в полеobjectstore_endpointв Civo REST API. - Можно ли использовать s3cmd или rclone с Civo Object Storage?
- Да, работают оба, как и AWS CLI и любой другой S3-совместимый клиент. Для s3cmd задайте
host_baseиhost_bucketв~/.s3cfgна региональный хост вродеobjectstore.fra1.civo.comи заполнитеaccess_keyиsecret_key. Для rclone создайте remote с type = s3, provider = Other, endpoint =https://objectstore.fra1.civo.comи той же парой ключей. Для AWS CLI передавайте--endpoint-urlhttps://objectstore.fra1.civo.comв каждой команде. - Почему мой ключ доступа к Civo object storage не работает?
- Обычная причина это регион. Civo пишет, что object stores привязаны к региону и что доступы привязаны к региону, в котором были созданы, поэтому ключ, созданный в FRA1, не пройдёт аутентификацию на endpoint LON1, хотя принадлежит тому же аккаунту. Создавайте доступ, когда дашборд стоит на регионе этого store. Вторая частая причина это клиент, которому endpoint так и не передали, или
host_bucketв s3cmd, оставленный по умолчанию, из-за чего запрос уходит в Amazon вместо Civo. - Есть ли GUI для Civo object storage на Mac?
- CivoCloudManager это нативное приложение macOS, macOS 15 или новее, из Mac App Store, и оно знает про Civo: endpoint и ключи доступа для каждого store оно читает из Civo API, так что настраивать нечего. Просмотр идёт по хлебным крошкам, скачать можно отдельный файл, выделенную группу или целую папку рекурсивно, а загрузка и удаление остаются за CLI. Обычные клиенты S3 вроде Cyberduck или Transmit тоже подключаются к Civo, если вписать endpoint и вставить оба ключа на каждый store.
- Что пауза делает с данными в Civo object store?
- Пауза копирует все объекты в центральный object store с именем civo-cloud-manager внутри вашего же аккаунта Civo, сверяет скопированные ключи и размеры с источником и только после этого удаляет исходный store, чтобы он перестал стоить денег. Возврат пересоздаёт store под тем же именем с тем же доступом, копирует объекты назад и снова сверяет ключи и размеры, прежде чем очистить хранилище. Данные не покидают ваш аккаунт Civo, а проверка идёт по именам и размерам, а не по хешу содержимого.
Руководства
Шаг за шагом и честные сравнения.
- 01 Подключение Civo API key Сгенерируйте ключ в дашборде Civo, вставьте его один раз, а дальше его держит macOS Keychain.
- 02 Открыть firewall для своего IP Ручная процедура, ловушка динамического IP, которая после неё остаётся, и бесплатный путь из строки меню с закрытием по сроку.
- 03 Против Lens, OpenLens и k9s Три инструмента, которым всё равно, чей кластер, и один заточенный под Civo. Разница решает, что вы держите открытым.
- 04 Civo DNS на Mac Делегируйте домен на неймсерверы Civo, а зону дальше ведите в нативном приложении, а не во вкладке браузера.
- 05 Changelog Все вышедшие релизы, новые сверху, с подробностями, для которых заметка в магазине слишком коротка.
Подробно
Точечные материалы по каждому продукту Civo.
У каждой области Civo, которой касается CivoCloudManager, есть своя страница с деталями, компромиссами и архитектурой. Выберите ту, что ближе всего к вашей текущей работе.
- 01 Альтернатива Civo CLI для Mac Где GUI сильнее CLI, где нет и как они уживаются вместе.
- 02 Civo Kubernetes GUI для Mac Живой дашборд кластера, логи pod в реальном времени, kubectl не нужен.
- 03 Браузер Civo Object Storage для Mac Нативный S3-совместимый браузер. Пауза простаивающих bucket в общем хранилище.
- 04 Civo firewall из строки меню Mac Открытие и закрытие в один клик, автоопределение IP, таймер автозакрытия.
- 05 Дашборд расходов Civo для Mac Реальные начисления из Civo charges API. Выбор периода и прогноз на конец месяца.
Пропустите настройку endpoint.
CivoCloudManager читает endpoint и ключи доступа из вашего же аккаунта Civo, поэтому store просто открывается, файл конфигурации для этого не нужен. Бесплатный уровень строки меню, полный дашборд за разовую покупку в Mac App Store.