Монтируем S3 хранилище при помощи s3fs

Хотя S3 хранилище во многом отличается от классического облака, часто возникает необходимость работы с ним, как с обычной файловой системой. Для этих целей существует немало инструментов, вроде rclone, goofys или geeseFS. Мы же рассмотрим один из самых простых и одновременно надёжных способов монтирования S3 хранилища при помощи s3fs.

Подготовка

s3fs – это популярный консольный клиент для монтирования объектных хранилищ при помощи FUSE. Его мы выбираем сразу по нескольким причинам: поддержка всех основных команд и атрибутов для работы с файлами, проверка целостности файлов при помощи MD5, кэширование данных на диске и метаданных в оперативной памяти.

Рекомендуется использоваться s3fs версии не ниже 1.84.

В первую очередь, перед установкой s3fs нам необходимо получить реквизиты для доступа к хранилищу.

Нам понадобится:

  • Endpoint (конечная точка) – адрес, через который сервис будет принимать запросы. Например s3.homehosted.ru;
  • Access Key – идентификатор ключа доступа;
  • Secret Key – сам секретный ключ доступа.

У каждого поставщика услуг процесс получения реквизитов выглядит по-разному, поэтому стоит ознакомиться с документацией сервиса, предоставляющего объектное хранилище S3.
В рамках этой статьи работоспособность была проверена на S3 хранилище от TimeWeb.

Если данные уже есть на руках, приступаем непосредственно к работе с клиентским ПК.

  1. Устанавливаем s3fs на компьютер/сервер:

Для Debian/Ubuntu:

apt install s3fs

Для Fedora:

dnf install s3fs-fuse

Для Arch Linux:

pacman -S s3fs-fuse

Для CentOS:

yum install epel-release 
yum install s3fs-fuse
  1. Дополнительно убедитесь, что на Вашем сервере/ПК установлен пакет fuse. Если это не так, установите его из репозитория Вашей системы по аналогии с s3fs. Но как правило данный шаг не требуется.
  2. Сохраняем идентификатор ключа (Access Key) и секретный ключ (Secret Key) в файле ~/.passwd-s3fs:
echo <идентификатор ключа>:<секретный ключ> >  ~/.passwd-s3fs

Ограничиваем права на созданный файл командой:

chmod 600  ~/.passwd-s3fs
  1. Создаём каталог, в который мы собираемся монтировать нашу корзину в формате:
mkdir /mnt/<наш каталог>

И устанавливаем на него права:

chmod -R 777 /mnt/<наш каталог>

Итак, мы закончили все основные приготовления и наконец готовы приступить к работе с s3fs.

Монтирование S3 в систему

Перед тем, как вносить изменения в файл fstab и монтировать S3 в автоматическом режиме, нам понадобится проверить работоспособность объектного хранилища в нашем окружении.

  1. Для этого проводим одноразовое монтирование командой:
s3fs <название корзины> /mnt/<наш каталог> -o passwd_file=$HOME/.passwd-s3fs \ -o url=https://<endpoint> -o use_path_request_style

где:

<название корзины> — название корзины, которую вы хотите смонтировать.

/mount/<наш каталог> — путь к пустому каталогу на сервере, созданный ранее со всеми необходимыми правами на чтение и запись.

$HOME/.passwd-s3fs — местоположение файла конфигурации с парой ключей, который мы создали ранее.

-o url — адрес объектного хранилища (Endpoint), например: s3.homehosted.ru.

  1. Добавляем простой текстовый файл в корзину S3 любым удобным способом.

Ряд поставщиков предлагают для загрузки файлов специальный WebUI. Если это не Ваш случай, всегда можно воспользоваться любым сторонним софтом с поддержкой Amazon S3 API. Для Windows, например, это S3 Browser или WinSCP.

  1. После этого на нашем ПК/сервере переходим в смонтированный каталог:
cd /mnt/<наш каталог>

И проверяем наличие тестового файла командой:

ls -l

Если в списке отобразился наш ранее загруженный файл – монтирование успешно.

  1. Теперь, чтобы при каждой перезагрузке нам не нужно было монтировать корзину вручную, добавляем следующую строку в файл /etc/fstab (не забудьте заменить данные между <>):
s3fs#<название корзины> /mount/<путь к каталогу> fuse _netdev,allow_other,use_path_request_style,umask=000,url=https://<Endpoint>>,passwd_file=/home/<имя пользователя>/.passwd-s3fs 0 0

Перезагрузите сервер и убедитесь, что ваш тестовый файл всё ещё на месте.

Итог

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


Автор: Владислав Лищенко / HomeHosted.ru

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *