s3fs
s3fs — это программа с открытым исходным кодом для Linux и macOS. С помощью s3fs можно примонтировать бакет в папку на устройстве и работать с ним как с обычной папкой, пока он примонтирован.
Используйте инструкцию Installation в GitHub s3fs-fuse.
Настроить доступ может Владелец аккаунта или пользователь с ролью iam_admin.
-
Создайте сервисного пользователя с ролью с доступом в S3. Если вы используете сервисного пользователя с ролью
object_storage_userилиs3.bucket.user, в бакете должна быть настроена политика доступа. -
Откройте 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
Бакет будет монтирован в папку на вашем устройстве. При каждой перезагрузке системы бакет будет размонтирован.
Вы можете:
- выполнять разовое монтирование бакета после каждой перезагрузки системы вручную;
- настроить автоматическое монтирование, которое будет выполняться автоматически при каждой загрузке системы.
Разовое монтирование
Автоматическое монтирование
-
Откройте CLI.
-
Создайте пустую папку:
mkdir ~/<local_folder>Укажите
<local_folder>— имя папки. -
Монтируйте бакет:
s3fs <bucket_name> <path> -o passwd_file=~/.passwd-s3fs -o allow_other -o use_path_request_style -o endpoint=<pool> -o url=https://<s3_domain>Укажите:
<bucket_name>— имя бакета;<path>— путь до локальной папки, в которую будет монтирован бакет;-o allow_other— опционально: параметр, который разрешает доступ к папке с бакетом другим пользователям на устройстве. Если не указать параметр, работать с папкой сможет только текущий пользователь;-o use_path_request_style— опционально: параметр, который включает Path-style адресацию. Если не указать параметр, будет использована Virtual-Hosted адресация;<pool>— пул, в котором находится S3;<s3_domain>— домен S3 API, зависит от пула, в котором находится S3.
-
Откройте CLI.
-
Создайте пустую папку:
mkdir ~/<local_folder>Укажите
<local_folder>— имя папки. -
Откройте файл
fstab:nano /etc/fstab -
В файл
fstabдобавьте строку:s3fs#<bucket_name> <path> fuse allow_other,nonempty,passwd_file=~/.passwd-s3fs,use_path_request_style,endpoint=<pool>,url=https://<s3_domain> 0 0Укажите:
<bucket_name>— имя бакета;<path>— путь до папки, в которую будет монтирован бакет;allow_other— опционально: параметр, который разрешает доступ к папке с бакетом другим пользователям на устройстве. Если не указать параметр, работать с папкой сможет только текущий пользователь;use_path_request_style— опционально: параметр, который включает Path-style адресацию. Если не указать параметр, будет использована Virtual-Hosted адресация;<pool>— пул, в котором находится S3;<s3_domain>— домен S3 API, зависит от пула, в котором находится S3.
-
Закройте файл (Ctrl+Х) и сохраните внесенные изменения (Y).