s3fs
s3fs — это утилита с открытым исходным кодом для Linux и macOS. С помощью s3fs можно примонтировать контейнер в папку на устройстве и работать с ним как с обычной папкой, пока он примонтирован.
Настроить s3fs
1. Установить клиент
Используйте инструкцию Installation в GitHub s3fs-fuse.
2. Настроить доступ
Настроить доступ может пользователь с ролью Владелец аккаунта или Администратор пользователей.
-
Создайте сервисного пользователя с ролью с доступом в объектное хранилище. Если вы используете пользователя с ролью Пользователь объектного хранилища, в контейнере должна быть настроена политика доступа.
-
Откройте CLI.
-
В файле
~/.passwd-s3fs
сохраните S3-ключ:echo <access_key>:<secret_key> > ~/.passwd-s3fs
Укажите:
<access_key>
— значение поля Access key из S3-ключа;<secret_key>
— значение поля Secret key из S3-ключа.
-
Ограничьте доступ к файлу
~/.passwd-s3fs
:chmod 600 ~/.passwd-s3fs
3. Монтировать контейнер
Контейнер будет монтирован в папку на вашем устройстве. При каждой перезагрузке системы контейнер будет размонтирован.
Вы можете:
- выполнять разовое монтирование контейнера после каждой перезагрузки системы вручную;
- настроить автоматическое монтирование, которое будет выполняться автоматически при каждой загрузке системы.
Разовое монтирование
Автоматическое монтирование
-
Откройте CLI.
-
Создайте пустую папку:
mkdir ~/<local_folder>
Укажите
<local_folder>
— имя папки. -
Монтируйте контейнер:
s3fs <container_name> <path> -o passwd_file=~/.passwd-s3fs -o allow_other -o use_path_request_style -o endpoint=<pool> -o url=https://<s3_domain>
Укажите:
<container_name>
— имя контейнера;<path>
— путь до локальной папки, в которую будет монтирован контейнер;-o allow_other
— опционально: параметр, который разрешает доступ к папке с контейнером другим пользователям на устройстве. Если не указать параметр, работать с папкой сможет только текущий пользователь;-o use_path_request_style
— опционально: параметр, который включает Path-style адресацию. Если не указать параметр, будет использована Virtual-Hosted адресация;<pool>
— пул, в котором находится объектное хранилище;<s3_domain>
— домен S3 API, зависит от пула, в котором находится объектное хранилище.
-
Откройте CLI.
-
Создайте пустую папку:
mkdir ~/<local_folder>
Укажите
<local_folder>
— имя папки. -
Откройте файл
fstab
:nano /etc/fstab
-
В файл
fstab
добавьте строку:s3fs#<container_name> <path> fuse allow_other,nonempty,passwd_file=~/.passwd-s3fs,use_path_request_style,endpoint=<pool>,url=https://<s3_domain> 0 0
Укажите:
<container_name>
— имя контейнера;<path>
— путь до папки, в которую будет монтирован контейнер;allow_other
— опционально: параметр, который разрешает доступ к папке с контейнером другим пользователям на устройстве. Если не указать параметр, работать с папкой сможет только текущий пользователь;use_path_request_style
— опционально: параметр, который включает Path-style адресацию. Если не указать параметр, будет использована Virtual-Hosted адресация;<pool>
— пул, в котором находится объектное хранилище;<s3_domain>
— домен S3 API, зависит от пула, в котором находится объектное хранилище.
-
Закройте файл (Ctrl+Х) и сохраните внесенные изменения (Y).