Предисловие: скорость работы оставляет желать лучшего, но иногда лучше чем ничего...
Самое популярное: s3fs
https://github.com/s3fs-fuse/s3fs-fuse
Для начала, нужно сделать бакет, и записать файл с кредами, формат ID:KEY, в файл $HOME/.passwd-s3fs или /etc/s3fs-storage если будет монтироваться через fstab, и обязательно ставим права 0600, иначе может не монтировать.
На примере edgecore
Монтирование из консоли:
sudo s3fs <bucket> <local_dir> -o passwd_file=/etc/s3fs-storage -o allow_other -o url=https://s-dt2.cloud.edgecore.ru -o use_path_request_style
Если же требуется отладка то добавляем в конец этой строки:
-o dbglevel=info -f -o curldbg
Монтирование из fstab:
<bucket> <local_dir> fuse.s3fs _netdev,allow_other,use_cache=/tmp/cache,uid=1000,gid=1000,use_path_request_style,passwd_file=/etc/s3fs-storage,url=https://s-dt2.cloud.edgecore.ru 0 0
Опции меняем-убираем по вкусу, это уже запуск под нужным пользователем. Нюанс, во многих инструкциях другой формат записи:
s3fs#<bucket> <local_dir> fuse ......
в убунте 20.04 работают оба.
Ещё нюанс, маунт при опциях выше показывает (rw,relatime,user_id=0,group_id=0,allow_other), хотя файлы внутри от нужного пользователя...
Для яндекса: отличий не так много, url=https://storage.yandexcloud.net
Для
timeweb: по идее, должно быть тоже только url=https://s3.timeweb.com, но по факту - не работает...
Также интересно рассмотреть аналог от яндекса
https://github.com/yandex-cloud/geesefs
(а ещё там есть сравнение с несколькими другими проектами)
Если захочется собрать самому, то статей много, у яндекса, сбера итд, типа
https://tecadmin.net/mount-s3-bucket-centosrhel-ubuntu-using-s3fs/
PS
s3fs показал себя крайне ненадёжно:
ls: cannot access '/srv/storage': Transport endpoint is not connected
Ремаунт помогает на короткое время.
Поставлен geesefs - работает так же медленно (помним что это fuse-обёртка на http), но хотя бы не падает.
Проверено на яндексе и эджцентре (оно же gcore). При этом для подключения под юзера с ид 1015 строка в fstab получилась такая
app-uploads /srv/storage fuse.geesefs _netdev,allow_other,--endpoint=https://s-dt2.cloud.edgecore.ru,--cache=/tmp/geesefs.cache,--memory-limit=400,--read-ahead-large=20480,--dir-mode=0755,--file-mode=0644,--uid=1015,--gid=1015 0 0