Для взаимодействия с хранилищем S3 прямо в консоли сервера, как с обычной файловой сист... — 30 июля 2026 г. в 06:11:02.459
Для взаимодействия с хранилищем S3 прямо в консоли сервера, как с обычной файловой системой, я обычно использовал s3fs-fuse. Делал когда-то про неё заметку. Ещё тогда мне сказали, что есть более развитый и менее тормозной GeeseFS от команды облака Яндекса. Я посмотрел отзывы о нём, поспрашивал ИИ, все говорят, что действительно это лучшее на текущий момент решения для монтирования S3. Я попробовал для своих задач. Настраивается легко, работает нормально. Предвещая вопросы, зачем это надо, ведь это костыль, медленно, ненадёжно и т.д. Для многих задач это будет нормально работать. Например, у меня куча костылей на bash скриптах для различных бэкапов с помощью rsync. Мне не хочется это переписывать на rclone или restic, а хочется ничего не меняя просто взять и подключить другое хранилище. Я подключаю S3 через GeeseFS и всё работает без каких-то лишних телодвижений. Уже опробовал. Потом я в другом месте подключаю этот же бакет, ищу нужные мне архивы через тот же find с группировкой по датам, именам и т.д. Забираю, проверяю, могу и удалить, переименовать и т.д. Примеров применения на самом деле много. Так очень удобно и просто подключить нескольким хостам одно и то же хранилище на чтение. Например, с какими-то образами, дистрибутивами, и любыми другими холодными данными. Такой костыль удобно подставить в пайплайн под артефакты или промежуточные файлы, когда не хватает места и не хочется переписывать под S3. Бакет в Selectel подключил с первой попытки. Сразу нормально завелось. Ставим fuse в систему и качаем свежую версию GeeseFS: # apt install fuse # wget https://github.com/yandex-cloud/geesefs/releases/latest/download/geesefs-linux-amd64 # chmod a+x geesefs-linux-amd64 # cp geesefs-linux-amd64 /usr/bin/geesefs Создаём файл с секретами: # mkdir ~/.aws && nano ~/.aws/credentials И добавляем туда: [default] aws_access_key_id = <access_key> aws_secret_access_key = <secret_key> Ключи выдаются на сервисных пользователей. В Selectel сервисные пользователи сейчас создаются в разделе IAM ⇨ Сервисные пользователи, а ключи для них в Продукты ⇨ S3 ⇨ S3-ключи. Сначала создаём пользователя, добавляем ему доступ к бакетам в настройках бакета, потом выдаём ему ключ. Последовательность сейчас может быть другая. Я давно всё это создавал, сейчас панель управления поменялась. После создания файла с ключами, можно монтировать бакет: # geesefs --endpoint s3.ru-1.storage.selcloud.ru --region ru-1 --profile default websrv-month /mnt/s3-selectel Примонтировал бакет websrv-month в локальную директорию /mnt/s3-selectel. Каких-то особых проблем в работе заметил. Подлагивает немного, когда обращаешься, что не удивительно, так как подключение через интернет. Крупные архивы туда нормально копируются и забираются, что мне и нужно было. Запись, как и чтение, кэшируется и потом заливается фоном. Размер кэша по умолчанию - 1 ГБ. Можно переназначить ключом --memory-limit. Geesefs поддерживает все популярные S3 сервисы - Amazon S3, Ceph, Minio, Yandex Object Storage и т.д. В общем, нормальное решение если надо подкостылить с S3. #s3

