Найти тему

s3fs или как смонтировать S3-хранилище в виде файловой системы

Объектное хранилище или S3-хранилище – простой, надежный и недорогой способ хранить ваши данные в облаке. Но что, если доступ к файлам через веб-интерфейс не всегда удобен, а API и CLI не подходят для работы с большим объемом файлов? На помощь приходит утилита для Linux и MacOS s3fs, позволяющая монтировать бакеты Object Storage в виде файловой системы с помощью FUSE. Именно об утилите s3fs и том, как монтировать ваше S3-хранилище в систему, пойдет речь в сегодняшней статье.

FUSE (filesystem in userspace) или файловая система в пользовательском пространстве – свободный модуль для ядер Unix-подобных операционных систем, представляющих собой драйвер файловой системы, с помощью которого разработчики могут создавать новые типы файловых систем. На базе этого драйвера работает утилита s3fs.

Несмотря на то что далеко не все облачные провайдеры регламентируют в своих документациях возможность монтирования S3-хранилищ в качестве файловой системы, спешим вас заверить, что утилита s3fs работает со всеми s3-совместимыми хранилищами. В качестве примера рассмотрим, как смонтировать объектное хранилище VK Cloud в качестве файловой системы на Linux.

1. Используем дистрибутив Centos 7. Первое, что нам потребуется – установить утилиту из репозитория командами
sudo yum install epel-release

sudo yum install s3fs-fuse

2. Создаем бакет и запоминаем его имя, затем создаем аккаунт, с помощью которого будет производится аутентификация. Затем запоминаем данные Access Key ID и Secret Key.

-2
-3

3. Создаем конфигурационный файл .passwd-s3fs в домашней директории следующего формата: <Access Key ID>:<Secret Key>
echo <Access Key ID>:<Secret Key> > ~/.passwd-s3fs

Ограничим права:
chmod 600 ~/.passwd-s3fs

4. После чего можно монтировать бакет командой
s3fs <Имя бакета> <путь_к_каталогу> -o passwd_file=$HOME/.passwd-s3fs \

-o url=https://<Endpoint> -o use_path_request_style

p.s: Endpoint для VK Cloud – https://hb.vkcs.cloud, для Yandex Cloud – https://storage.yandexcloud.net

5. Для того, чтобы бакет монтировался при запуске системы, добавляем в /etc/fstab строку вида

s3fs#<Имя бакета> <путь к каталогу> fuse _netdev,allow_other,use_path_request_style,url=https://<Endpoint>,passwd_file=/home/<имя пользователя>/.passwd-s3fs 0 0

На этом процесс монтирования бакета в файловую систему завершен. Теперь файлы из системы можно перемещать в подмонтированную папку, после чего они будут загружены в бакет объектного хранилища.

Если у вас остались вопросы или вы хотите доверить работу профессионалам, всегда можно обратиться к команде Нашего Облака.

Подписывайтесь на Telegram-канал «Наше Облако», чтобы узнать больше об облачных технологиях для бизнеса.