Top.Mail.Ru

Хранилище

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

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

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

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

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

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

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

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

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

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

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

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

  • 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 — путь до созданной директории для монтирования бакета.

Мы используем cookie, чтобы сайт стал лучше для вас.