
Хотя S3 хранилище во многом отличается от классического облака, часто возникает необходимость работы с ним, как с обычной файловой системой. Для этих целей существует немало инструментов, вроде rclone, goofys или geeseFS. Мы же рассмотрим один из самых простых и одновременно надёжных способов монтирования S3 хранилища при помощи s3fs.
Подготовка
s3fs – это популярный консольный клиент для монтирования объектных хранилищ при помощи FUSE. Его мы выбираем сразу по нескольким причинам: поддержка всех основных команд и атрибутов для работы с файлами, проверка целостности файлов при помощи MD5, кэширование данных на диске и метаданных в оперативной памяти.
Рекомендуется использоваться s3fs версии не ниже 1.84.
В первую очередь, перед установкой s3fs нам необходимо получить реквизиты для доступа к хранилищу.
Нам понадобится:
- Endpoint (конечная точка) – адрес, через который сервис будет принимать запросы. Например
s3.homehosted.ru
; - Access Key – идентификатор ключа доступа;
- Secret Key – сам секретный ключ доступа.
У каждого поставщика услуг процесс получения реквизитов выглядит по-разному, поэтому стоит ознакомиться с документацией сервиса, предоставляющего объектное хранилище S3.
В рамках этой статьи работоспособность была проверена на S3 хранилище от TimeWeb.
Если данные уже есть на руках, приступаем непосредственно к работе с клиентским ПК.
- Устанавливаем 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
- Дополнительно убедитесь, что на Вашем сервере/ПК установлен пакет
fuse
. Если это не так, установите его из репозитория Вашей системы по аналогии с s3fs. Но как правило данный шаг не требуется. - Сохраняем идентификатор ключа (Access Key) и секретный ключ (Secret Key) в файле
~/.passwd-s3fs
:
echo <идентификатор ключа>:<секретный ключ> > ~/.passwd-s3fs
Ограничиваем права на созданный файл командой:
chmod 600 ~/.passwd-s3fs
- Создаём каталог, в который мы собираемся монтировать нашу корзину в формате:
mkdir /mnt/<наш каталог>
И устанавливаем на него права:
chmod -R 777 /mnt/<наш каталог>
Итак, мы закончили все основные приготовления и наконец готовы приступить к работе с s3fs.
Монтирование S3 в систему
Перед тем, как вносить изменения в файл fstab
и монтировать S3 в автоматическом режиме, нам понадобится проверить работоспособность объектного хранилища в нашем окружении.
- Для этого проводим одноразовое монтирование командой:
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
.
- Добавляем простой текстовый файл в корзину S3 любым удобным способом.
Ряд поставщиков предлагают для загрузки файлов специальный WebUI. Если это не Ваш случай, всегда можно воспользоваться любым сторонним софтом с поддержкой Amazon S3 API. Для Windows, например, это S3 Browser или WinSCP.
- После этого на нашем ПК/сервере переходим в смонтированный каталог:
cd /mnt/<наш каталог>
И проверяем наличие тестового файла командой:
ls -l
Если в списке отобразился наш ранее загруженный файл – монтирование успешно.
- Теперь, чтобы при каждой перезагрузке нам не нужно было монтировать корзину вручную, добавляем следующую строку в файл
/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