Amazon S3 представляет собой масштабируемый и надежный сервис для хранения объектов, который позволяет хранить и извлекать любые объемы данных из сети. S3FS — это интерфейс FUSE (Файловая система в пространстве пользователя) для Amazon S3, который позволяет монтировать корзины Amazon S3 как локальную файловую систему на вашем сервере с CentOS или Fedora. Это дает возможность удобно получать доступ к данным S3 и работать с ними так, будто они находятся на локальной файловой системе. В этой статье мы расскажем, как подключить корзину Amazon S3 на системе CentOS или Fedora с помощью S3FS.
Перед началом убедитесь, что у вас есть следующее:
- Учетная запись Amazon S3 с хотя бы одной созданной корзиной.
- Ключ доступа и секретный ключ для доступа к вашей корзине S3.
- Система CentOS или Fedora с правами root.
- Установленный S3FS на вашей системе.
Ниже приведены пошаговые инструкции по подключению корзины Amazon S3 на системе CentOS или Fedora с использованием S3FS:
Установите необходимые пакеты:
Для начала, вам нужно установить пакет `s3fs-fuse`. На CentOS или Fedora это можно сделать с помощью команды:
sudo yum install s3fs-fuse
или
sudo dnf install s3fs-fuse
Создайте файл с учетными данными:
Создайте файл, в который будут записаны ваши учетные данные для доступа к SНапример:
echo ACCESS_KEY:SECRET_KEY > ~/.aws-s3fs
Не забудьте заменить `ACCESS_KEY` и `SECRET_KEY` на ваши реальные ключи доступа.
Настройте права доступа к файлу:
Убедитесь, что файл с учетными данными защищен от постороннего доступа:
chmod 600 ~/.aws-s3fs
Создайте точку монтирования:
Создайте директорию, в которую будет монтироваться ваша корзина S3:
mkdir /mnt/s3-bucket
Смонтируйте корзину S3:
Теперь вы можете смонтировать вашу корзину с помощью следующей команды:
s3fs your-bucket-name /mnt/s3-bucket -o passwd_file=~/.aws-s3fs
Замените `your-bucket-name` на название вашей корзины.
Проверьте монтирование:
Чтобы убедиться, что корзина смонтирована правильно, выполните команду:
df -h
Вы должны увидеть свою корзину в списке смонтированных файловых систем.
Автоматическое монтирование (по желанию):
Если вы хотите, чтобы корзина автоматически монтировалась при загрузке системы, добавьте следующую строку в файл `/etc/fstab`:
s3fs#your-bucket-name /mnt/s3-bucket fuse _netdev,allow_other,passwd_file=/home/your-username/.aws-s3fs 0 0
Не забудьте заменить `your-bucket-name` и `your-username` на актуальные значения.
Теперь вы можете работать с вашей корзиной S3 так же, как с любой другой локальной папкой! Убедитесь, что вы следите за правами доступа и безопасностью ваших учетных данных.
Содержание статьи
- 1 Удаление существующих пакетов
- 2 Установка необходимых пакетов
- 3 Загрузка и компиляция Fuse
- 4 Загрузка и сборка последней версии S3FS
- 5 Создание файла с учетными данными
- 6 Подключение корзины S3
- 7 Проверьте монтирование
- 8 S3FS: Монтирование бакетов Amazon S3 на Ubuntu и Debian
- 9 Как вручную создать пользователя в AWS Cognito (CLI)
- 10 Как очистить кэш CloudFront
Удаление существующих пакетов
Сначала проверьте, установлены ли на вашей системе какие-либо пакеты s3fs или fuse. Если они имеются, удалите их, чтобы избежать конфликтов.
yum remove fuse fuse-s3fs
Для проверки установленных пакетов можно использовать команду:
yum list installed | grep fuse
Эта команда покажет все установленные пакеты, содержащие «fuse» в названии. Если вам нужно удалить другие зависимости, вы можете использовать опцию --setopt=clean_requirements_on_remove=1 вместе с командой удаления, чтобы автоматически удалить ненужные зависимости.
Также рекомендуется перезагрузить систему после удаления пакетов, чтобы убедиться, что все изменения вступили в силу.
Установка необходимых пакетов
После удаления пакетов установим все зависимости для fuse и s3cmd. Выполните команду для установки необходимых пакетов:
yum install gcc libstdc++-devel gcc-c++ curl-devel libxml2-devel openssl-devel mailcap
Также убедитесь, что у вас есть права администратора для выполнения данной команды. Если вы работаете на сервере, рекомендуется создать резервную копию конфигурационных файлов перед установкой. Установленные пакеты обеспечат поддержку разработки и взаимодействия с файловыми системами, а также обработку XML и OpenSSL для безопасных соединений.
Загрузка и компиляция Fuse
Скачайте и соберите последнюю версию исходного кода fuse. В этой статье используется версия fuse 3.1Следуя приведенным ниже командам, вы сможете собрать fuse и интегрировать модуль fuse в ядро.
Скачайте исходный код fuse:
cd /usr/src/ wget https://github.com/libfuse/libfuse/releases/download/fuse-3.13.0/fuse-3.13.0.tar.xz
tar Jxf fuse-3.13.0.tar.xz cd fuse-3.13.0
./configure --prefix=/usr/local make && make install
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig ldconfig modprobe fuse
После выполнения вышеуказанных команд убедитесь, что модуль fuse загружен правильно. Для этого выполните команду:
lsmod | grep fuse
Если вы видите запись «fuse», это означает, что модуль успешно загружен. Также стоит отметить, что для работы с FUSE может понадобиться установка дополнительных библиотек, таких как pkg-config, которые обеспечивают правильную конфигурацию и компиляцию.
После успешной установки вы можете начать использовать FUSE для создания своих собственных файловых систем. Ознакомьтесь с документацией на официальном сайте проекта, чтобы узнать больше о доступных функциях и примерах использования.
Не забудьте проверить права доступа для пользователей, которые будут использовать FUSE. Обычно требуется добавление в группу ‘fuse’, чтобы разрешить доступ к функциональности, предоставляемой модулем.
Загрузка и сборка последней версии S3FS
Скачайте и соберите последнюю версию исходного кода s3fs. В этой статье используется версия s3fs 1.7После загрузки распакуйте архив и соберите исходный код на вашей системе.
Скачайте исходный код из git-репозитория:
cd /usr/src/ git clone https://github.com/s3fs-fuse/s3fs-fuse.git
cd s3fs-fuse ./autogen.sh ./configure
make && make install
Создание файла с учетными данными
Создайте файл для хранения ваших ключей доступа и секретных ключей:
echo AWS_ACCESS_KEY:AWS_SECRET_KEY > ~/.passwd-s3fs chmod 600 ~/.passwd-s3fs
Примечание: Замените AWS_ACCESS_KEY и AWS_SECRET_KEY на свои действительные ключи доступа и секретные ключи Amazon SЭтот файл обеспечивает безопасность ваших ключей доступа, а установленные права защищают его от несанкционированного доступа.
Для проверки правильности сохранения ключей, вы можете использовать команду:
cat ~/.passwd-s3fs
Однако, будьте осторожны: не показывайте этот файл никому, чтобы избежать компрометации ваших учетных данных.
Также рекомендуется регулярно обновлять ваши ключи доступа в AWS Management Console и заменять их в этом файле, чтобы минимизировать риски безопасности.
Помимо этого, убедитесь, что ваш сервер или локальная машина, где вы храните этот файл, защищены от внешних угроз, например, путем использования брандмауэра или шифрования диска.
Подключение корзины S3
Создайте каталог для монтирования корзины S3:
mkdir /tmp/cache /s3-mount
Это создаст директорию, где будет монтироваться корзина SВы можете выбрать любое другое имя для каталога по своему усмотрению.
Установите разрешения для директории монтирования:
chmod 777 /tmp/cache /s3-mount
Это предоставит права доступа к точке монтирования, позволяя всем пользователям читать и записывать данные.
s3fs -o use_cache=/tmp/cache BUCKET_NAME /s3-mount
Замените BUCKET_NAME на реальное название вашего ведра Amazon SЭта команда монтирует ведро S3 в заданную директорию.
Проверьте монтирование
Команда df показывает использование дискового пространства и смонтированные файловые системы на вашем компьютере. Если ведро S3 было успешно смонтировано, вы увидите каталог монтирования с именем ведра S3.
df -h
Вот и все! Вы успешно смонтировали ведро Amazon S3 на вашей системе CentOS или Fedora с помощью S3FS. Теперь у вас есть доступ к данным в вашем ведре S3, и вы можете с ними работать так, будто они находятся на локальной файловой системе.
В итоге, монтирование ведра Amazon S3 на системах CentOS или Fedora с использованием S3FS — это простой и эффективный способ доступа к вашим данным SS3FS позволяет вам легко работать с вашими данными S3, как если бы они находились на локальной файловой системе, что значительно упрощает взаимодействие с данными S3 в среде CentOS или Fedora.
Кроме того, вы можете использовать дополнительные параметры для команды mount, чтобы настроить кэширование и производительность. Например, опция -o use_cache=/путь/к/каталогу позволяет указать путь к каталогу кэша, что может повысить скорость доступа к часто используемым данным.
Также имейте в виду, что при работе с S3FS необходимо учитывать ограничения по доступу и квоты вашего ведра SУбедитесь, что у вас есть необходимые разрешения для выполнения операций с файлами в вашем ведре.
амазон ведро ec2 фьюз fuse s3fs s3 ведро s3 хранилище s3fs
Поделиться. Facebook Twitter Pinterest LinkedIn Tumblr Email WhatsApp
S3FS: Монтирование бакетов Amazon S3 на Ubuntu и Debian
Как вручную создать пользователя в AWS Cognito (CLI)
Как очистить кэш CloudFront
cd fuse-3.1.0 Не существует (только fuse-3.5.0) [root@localhost fuse-3.5.0]# ./configure –prefix=/usr/local -bash: ./configure: Нет такого файла или директории
Есть ли у вас идеи, как смонтировать локальное S3 (не на AWS), созданное на PURE storage? У меня есть имя ведра, конечная точка, ключ доступа и секретный ключ.
Теперь они используют meson/ninja вместо make && make install или ./configure.
У меня возникает ошибка: s3fs: HTTP: 403 Запрещено — возможно, ваши учетные данные неверны. Вы уже решили эту проблему?
Может ли это работать с недорогим wasabi.com вместо amazon s3? Спасибо.
Шаги 4 ./configure<== это не удастся, потому что файла configure нет
У вас есть решение этой проблемы? Я столкнулся с аналогичной ситуацией. С уважением, Рональд.
Тоже самое!
На Ubuntu шаги 1-4 можно заменить одной командой: sudo apt-get install s3fs. Используйте это вместо шагов 1-4 и продолжайте с «Работает – протестировано».
Не используйте fuse3*, а оставайтесь на fuse 2*, иначе установка s3fs не получится.
Я получаю следующую ошибку. fuse: предупреждение: библиотека устарела, некоторые операции могут не функционировать. # rpm -qa | grep fuse libconfuse-2.7-4.el6.x86_64 fuse-libs-2.8.3-5.el6.x86_64 # хотя последняя версия пакета недоступна в репозитории Yum. Пожалуйста, дайте совет.
Привет, я следовал твоему руководству (на Ubuntu 14.04, Bitnami – EC2), и у меня возникает ошибка при выполнении «make»:
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libcurl.so: отсутствует ссылка на ldap_sasl_bind@OPENLDAP_2.4_2
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libcurl.so: отсутствует ссылка на ldap_get_dn_ber@OPENLDAP_2.4_2
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libcurl.so: отсутствует ссылка на ber_sockbuf_add_io@OPENLDAP_2.4_2
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libcurl.so: отсутствует ссылка на ldap_unbind_ext@OPENLDAP_2.4_2
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libcurl.so: отсутствует ссылка на ldap_get_attribute_ber@OPENLDAP_2.4_2
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libcurl.so: отсутствует ссылка на ldap_parse_result@OPENLDAP_2.4_2
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libcurl.so: отсутствует ссылка на ldap_set_option@OPENLDAP_2.4_2
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libcurl.so: отсутствует ссылка на ldap_abandon_ext@OPENLDAP_2.4_2
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libcurl.so: отсутствует ссылка на ldap_msgfree@OPENLDAP_2.4_2
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libcurl.so: отсутствует ссылка на ldap_result@OPENLDAP_2.4_2
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libcurl.so: отсутствует ссылка на ldap_search_ext@OPENLDAP_2.4_2
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libcurl.so: отсутствует ссылка на ldap_get_option@OPENLDAP_2.4_2
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libcurl.so: отсутствует ссылка на ber_memfree@OPENLDAP_2.4_2
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libcurl.so: отсутствует ссылка на ldap_memfree@OPENLDAP_2.4_2
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libcurl.so: отсутствует ссылка на ldap_pvt_url_scheme2proto@OPENLDAP_2.4_2
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libcurl.so: отсутствует ссылка на ldap_next_message@OPENLDAP_2.4_2
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libcurl.so: отсутствует ссылка на ber_free@OPENLDAP_2.4_2
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libcurl.so: отсутствует ссылка на ldap_err2string@OPENLDAP_2.4_2
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libcurl.so: отсутствует ссылка на ldap_init_fd@OPENLDAP_2.4_2
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libcurl.so: отсутствует ссылка на ldap_msgtype@OPENLDAP_2.4_2
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libcurl.so: отсутствует ссылка на ldap_free_urldesc@OPENLDAP_2.4_2
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libcurl.so: отсутствует ссылка на ldap_url_parse@OPENLDAP_2.4_2
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libcurl.so: отсутствует ссылка на ldap_first_message@OPENLDAP_2.4_2
collect2: ошибка: ld завершил с кодом 1
make[2]: *** [s3fs] Ошибка 1
make[2]: Выход из каталога /tmp/s3fs-fuse-1.80/src
make[1]: *** [all-recursive] Ошибка 1
make[1]: Выход из каталога /tmp/s3fs-fuse-1.80
make: *** [all] Ошибка 2
Если вы видите сообщение “bash: s3fs: команда не найдена”, используйте: sudo /usr/local/bin/s3fs -o use_cache=/tmp/cache mydbbackup /s3mnt
Тем, кто столкнулся с проблемой на CentOS: s3fs: ошибка загрузки общих библиотек: libfuse.so.2: невозможно открыть общий объектный файл: Нет такого файла или каталога, выполните команду: yum install fuse-libs.
Прекрасная статья! Всё прошло замечательно… единственное затруднение было в том, что необходимо было обновить путь к библиотекам, так как при запуске s3fs он не обнаруживал зависимости FUSE. LD_LIBRARY_PATH=/usr/local/lib export LD_LIBRARY_PATH. Это исправило ситуацию 🙂
Привет! Я успешно примонтировал S3, но когда пытаюсь использовать команду “cd” в смонтированных папках, возникает ошибка “operation not permitted”: cd: app_logs/: Operation not permitted. Вот права доступа для этой директории: d———. 1 root root 1 May 6 2015 app_logs. Я выполнил команду: s3fs -o use_cache=/tmp/cache s3bucket /s3mnt. Какие права доступа нужно установить для бакета или папки внутри него? Возможно, я неверно ввожу команду для монтирования?
Привет, Рахул! Не мог бы ты поделиться инструкциями по подключению корзины Amazon S3 на Windows OS для версий 2008 и 2012? Спасибо, с уважением, Мехул.
Здравствуйте всем! Я получаю такую ошибку после попытки примонтировать бакет: # s3fs -o user_cache=/tmp/cache lehar-backup /s3mnt s3fs: /lib/libfuse.so.2: версия `FUSE_2.8′ не найдена (требуется для s3fs). Я скачал fuse 2.8 и собрал его по инструкциям, но если что-то упустил, хотел бы знать, что именно. Дайте знать, какая информация может понадобиться. Спасибо за любую помощь! ~Дэйв
У меня заполнился диск после монтирования, и я не могу использовать систему. В идеале он не должен занимать место на диске. Как я могу это исправить?
Файловая система | 1K-блоки | Использовано | Доступно | Использовано% | Смонтировано на
/dev/xvda1 | 10321208 | 10297608 | 0 | 100% | /
none | 847476 | 0 | 847476 | 0% | /dev/shm
s3fs | 274877906944 | 0 | 274877906944 | 0% | /s3mnt
У меня ошибка: s3fs: HTTP: 403 Запрещено – вероятно, ваши учетные данные неверны. Вы уже решили эту проблему?
У меня ошибка: s3fs: HTTP: 403 Запрещено – вероятно, ваши учетные данные неверны. Вы уже решили эту проблему?

