S3fs. Как монтировать S3 бакет на локальную директорию с помощью S3fs

Последние изменения: 09.03.2023

Об инструменте
Получить данные для подключения к бакету
Смонтировать бакет
Настроить автоматическое монтирование
Отключить бакет от директории

Об инструменте S3fs

Что это. S3fs — это инструмент командной строки, который позволяет монтировать бакет S3-хранилища через модуль FUSE. S3fs используется в Unix-системах.

Как применять. С помощью S3fs вы можете получить доступ к бакету и управлять его содержимым из вашей локальной директории: добавлять файлы и папки, изменять и удалять их. Все изменения автоматически отобразятся в бакете хранилища. Если вы обновите файлы в хранилище, их новая версия также будет доступна в локальной директории.

Какие преимущества:

  • Инструмент поможет увеличить дисковое пространство вашей системы с помощью S3-хранилища.

  • S3-хранилище можно использовать для резервного копирования файлов из директории.

Как установить. Установите пакеты S3fs с помощью инструкции в документации проекта.

В этой статье мы покажем, как работать с S3fs на основе системы Ubuntu 22.10.

Какие данные нужны для монтирования бакета

Чтобы смонтировать бакет, понадобятся следующие данные:

  • Hostname хранилищаслужебный URL вашего хранилища, например s-dt2.cloud.edgecore.ru.
    Чтобы узнать Hostname, нажмите на ··· напротив названия вашего хранилища → нажмите на кнопку Детали Hostname.

9dce420668fd4af41c1407aa03c4ec48.png
338575ad253870b307239a6c697e448f.png
  • Access key и Secret key — ключи, которые вы получили во время создания хранилища.

  • Название бакета, который вы хотите смонтировать. Бакет должен быть создан заранее.

Как смонтировать бакет

Этот способ подходит для разового монтирования бакета. Если вы хотите, чтобы бакет оставался смонтированным к вашей директории даже после перезагрузки системы, следуйте инструкции в разделе «Как настроить автоматическое монтирование бакета».

1. На вашей системе обновите локальный индекс пакетов, чтобы загрузить все новые версии.

sudo apt update

2. Установите пакеты S3fs.

sudo apt install s3fs

3. Сохраните ключи Access key и Secret key от вашего хранилища в файле ~/.passwd-s3fs.

echo ACCESS KEY:SECRET KEY > ~/.passwd-s3fs 

Например, echo AB1CDEFGHI2J3KL4MN:A1B2CDEfgHiJKL3M4op5 > ~/.passwd-s3fs

4. Ограничьте доступ к файлу ~/.passwd-s3fs.

chmod 600 ~/.passwd-s3fs 

5. Создайте директорию, на которую вы смонтируете бакет.

mkdir ~/folder 

Где ~/folder — путь до директории.

6. Смонтируйте бакет к созданной директории.

s3fs bucketname ~/folder -o passwd_file=~/.passwd-s3fs -o url=https://s-dt2.cloud.edgecore.ru -o use_path_request_style

Где:

  • bucketname — имя бакета в хранилище

  • ~/folder — путь до созданной директории для монтирования бакета

  • s-dt2.cloud.edgecore.ru — Hostname хранилища

Бакет успешно смонтирован! Чтобы проверить применились ли настройки, перейдите в созданную директорию и просмотрите её содержимое.

Для этого выполните команды:

cd ~/folder

где ~/folder — путь до созданной директории для монтирования бакета

ls

Вы увидите файлы и папки вашего бакета. Если директория пустая, проверьте правильность переменных из пунктов 3 и 6.

Как настроить автоматическое монтирование бакета

Если вы хотите настроить разовое монтирование бакета, следуйте инструкции в разделе «Как смонтировать бакет».

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

1. На вашей системе обновите локальный индекс пакетов, чтобы загрузить все новые версии.

sudo apt update

2. Установите пакеты S3fs.

sudo apt install s3fs

3. Сохраните ключи Access key и Secret key от вашего хранилища в файле ~/.passwd-s3fs.

echo ACCESS KEY:SECRET KEY > ~/.passwd-s3fs 

Например, echo AB1CDEFGHI2J3KL4MN:A1B2CDEfgHiJKL3M4op5 > ~/.passwd-s3fs

4. Ограничьте доступ к файлу ~/.passwd-s3fs.

chmod 600 ~/.passwd-s3fs 

5. Создайте директорию, на которую вы смонтируете бакет.

mkdir ~/folder 

Где ~/folder — путь до директории.

6. Перейдите в файл /etc/fstab.

cd /etc
sudo nano fstab

7. Откроется текстовый редактор. В файле fstab уже могут содержаться некоторые строки. Не изменяйте их, чтобы не нарушить работу вашей системы. Добавьте следующую строку ниже имеющихся:

s3fs#bucketname /home/ubuntu/folder/ fuse _netdev,allow_other,passwd_file=/home/ubuntu/.passwd-s3fs,use_path_request_style,url=https://s-dt2.cloud.edgecore.ru 0 0

Где:

  • bucketname — имя бакета в хранилище

  • /home/ubuntu/folder/ — путь до созданной директории для монтирования бакета

  • /home/ubuntu/.passwd-s3fs — путь до файла с ключами Access key и Secret key от хранилища

  • s-dt2.cloud.edgecore.ru — Hostname хранилища

Нажмите Ctrl + X, чтобы выйти из редактора. Затем нажмите на Y и Enter.

8. Смонтируйте бакет к созданной директории.

s3fs bucketname ~/folder -o passwd_file=~/.passwd-s3fs -o url=https://s-dt2.cloud.edgecore.ru -o use_path_request_style

Где:

  • bucketname — имя бакета в хранилище

  • ~/folder — путь до созданной директории для монтирования бакета

  • s-dt2.cloud.edgecore.ru — Hostname хранилища

Бакет успешно смонтирован! Чтобы проверить применились ли настройки, перейдите в созданную директорию и просмотрите её содержимое.

Для этого выполните команды:

cd ~/folder

где ~/folder — путь до созданной директории для монтирования бакета

ls

Вы увидите файлы и папки вашего бакета. Если директория пустая, проверьте правильность переменных из пунктов 3, 7 и 8.

Проверьте автоматическое монтирование, перезагрузив систему.

Как отключить бакет от директории

sudo umount ~/folder

где ~/folder — путь до созданной директории для монтирования бакета.

Помогла ли вам статья?