S3 и зачем вообще городить ещё один клиент…

от автора

Боль, но не про «что такое RGW»

Вы нормально знаете Ceph, RGW, где смотреть логи и почему внезапно вылез 403. Вопрос не в том, чтобы объяснять вам, что такое бакет. Вопрос в том, что рядом с кластером сидят люди, которым нужен не Ceph, а обычный S3: залить билд, вытащить дамп, перекинуть префикс, выдать временную ссылку, проверить размер и версию. Без ceph rados radosgw-admin s3cmd aws cli etc, без лекций про PG и без вашего участия в каждой мелочи.

CLI и скрипты остаются у вас и в CI. Консоль облака может быть про другой контур. А типичный пользователь хочет одно окно: таблица, drag and drop, прогресс, текст ошибки, который можно скопировать и принести уже с контекстом, а не «ничего не работает».

Отсюда и идея отдельного десктопного клиента: не заменить вам эксплуатацию, а разгрузить вас от потока однотипных ручных тикетов и дать людям самообслуживание в рамках выданных ключей и политик.

А клиентов разве мало

Мало не бывает. Просто у каждого инструмента своя цена и свои рамки.

S3 Browser многие на Windows знают с нулевых. Бесплатная версия у них только для личного использования, для работы по их правилам нужна Pro, оплата за машину, в валюте, плюс история с обновлениями. Сильный вариант, но мир давно не только Windows.

MSP360 CloudBerry Explorer: есть бесплатная обрезка с ограничениями, нормальная нагрузка часто упирается в PRO за разовый платёж и дальше в обслуживание. Опять валюта, лицензии на компьютеры, закупка.

Mountain DuckTransmitForkLift: в основном платные истории, часть только под macOS, часть ещё и с подписками или магазинами приложений. Для смешанной команды с Linux на столах это уже не «поставил всем», а отдельный зоопарк.

Cyberduck по сути бесплатный open source, с сайта можно не платить, но с донатными напоминаниями, а из магазинов он часто идёт уже за фиксированную цену. То есть денег может не быть, а раздражение или политика закупки всё равно есть.

FileZilla Pro, всякие облачные проводники и веб-консоль AWS каждый тянет в свою сторону: то коммерческая лицензия, то не ваш RGW в том же окне, то другой порог входа.

rclone мощный и бесплатный, но это уже уровень «я сам себе DevOps», не для каждого человека из соседнего отдела.

Коротко: рынок не пустой, вопрос в том, ложится ли конкретный набор клиентов и лицензий на ваших людей и на ваш RGW рядом с AWS.

интерфейс

интерфейс

Про деньги, карты и «эпоху санкций» без морали

С 2022 года у многих в РФ нет привычного и предсказуемого способа оплатить зарубежный софт: карты, PayPal, биллинг в долларах или евро, регион магазина приложений. Не всегда и не для всех одинаково тяжело, но закупить десяток лицензий у US-вендора часто превращается в отдельный квест с бухгалтерией и рисками, а не в «нажал купить в пятницу вечером».

Плюс типичные организационные боли: лицензия на машину, подписка вместо «купил и забыл», зависимость от того, что вендор завтра поменяет модель или цену.

Поэтому для части команд Free клиент с GitHub и готовыми сборками под Windows, macOS и Linux это не религия, а практика: поставили политикой, не висите на чужом платёжном шлюзе ради того, чтобы человеку залить папку в бакет.

Что я хотел собрать в одном месте

Не «убить всех конкурентов», а закрыть связку, которая у нас вылезала каждый день.

Профили на ваш RGW и на AWS, если он тоже в обороте. Очередь передач с паузой, отменой и нормальным статусом, чтобы не гадать, «зависло или просто долго».

Двухпанельный коммандер: S3 слева, диск или второй бакет справа, сравнение префиксов, синхронизация между двумя S3-панелями там, где это нужно по работе.

Настройки бакета в одном окне: policy, CORS, lifecycle, шифрование, versioning, Object Lock, Public Access Block. Чтобы и вы не объясняли пятый раз «где в консоли это лежит», и продвинутый пользователь не строил себе костыль из пяти вкладок.

настройки бакета

настройки бакета

Версии, теги, метаданные, presigned ссылки, ACL, плюс нормальные тексты ошибок на S3-совместимых бэкендах, где «как в AWS» бывает только на маркетинговых слайдах.

Прокси так, чтобы жить в корпоративной сети, и локализация (русский, английский, китайский), потому что смешанные команды это реальность.

Импорт профилей из S3 Browser для тех, кто мигрирует с Windows и не хочет вбивать всё заново.

Идея простая: язык для пользователя не Ceph, а привычные файлы, папки, копировать, вставить. Вы оставляете за собой кластер, сеть, DNS, TLS и политики на стороне RGW.

Что в итоге неплохо работает

Три вещи, которые реально экономят нервы.

Ошибки, которые можно прочитать, а не общее «что-то сломалось». На RGW это спасает не только вас, но и того, кто пришёл без root-доступа к логам.

Очередь, где видно прогресс и можно остановить заливку. Меньше вопросов в чат «оно ещё крутится».

Прокси и несколько профилей. Для пользователя это «на работе открылось», для вас меньше разборок «у нас всё через proxy, а клиент половину запросов шлёт мимо».

Где всё равно не сказка

S3-compatible на вывеске и S3-compatible в бою это разные вещи. Lifecycle XML, странности с отдельными фичами, разные коды и тела ошибок. Клиенту приходится подстраиваться. Иногда человек всё равно придёт к вам, но уже с нормальным текстом, а не с пустым «не работает».

Multipart в жизни это не красивая диаграмма, а длинные ключи, обрывы, куча незавершённых upload id. Кодировки в текстовом превью отдельный подарок: лог в старой кодировке, заголовок врёт, BOM есть или нет.

И да: десктоп не заменяет нормальные политики, квоты и мониторинг на RGW. Если сеть порезали или прав нет, волшебной кнопки не будет. Простой пользователь иногда удалит не тот префикс. Подтверждения и бэкапы никто не отменял.

Почему не только «возьмите Cyberduck и живите счастливо»

Cyberduck честно закрывает часть задач и по деньгам щадит. Но тут был свой набор: кроссплатформа, один сценарий под очередь, коммандер, настройки бакета, поведение на RGWрусский интерфейс для тех, кто не хочет жить в английском меню, плюс импорт с S3 Browser. Это уже не вопрос «платный или нет», а вопрос собрать под себя один инструмент, который не просит у бизнеса каждый квартал новый круг с лицензиями и магазинами, особенно когда оплата зарубежного софта из РФ превращается в отдельный вид спорта.

Кому зайдет

Вам как админу Ceph: меньше шума от рутины «перекинь файл, дай ссылку, покажи версию».

Людям с другой стороны: нормальный S3 без технических знаний «что под капотом«.

В конце без лозунгов

https://github.com/timofey-maykov/s3-tm-browser

Если попробуете на своём RGW, напишите в комментариях, как у вас заведены endpoint, path-style и типичные политики. Такие заметки полезнее любой рекламы.

Обратная связь очень приветствуется: баги, странности на конкретном S3-совместимом бэкенде, идеи по интерфейсу, что мешает в ежедневной работе. Чем конкретнее описание (версия клиента, что нажимали, текст ошибки), тем проще разобраться и поправить.

ссылка на оригинал статьи https://habr.com/ru/articles/1023538/