Организация доступа к локальным данным по http протоколу
Трансляция файловой системы через веб сервер
Существует множество способов быстро передать данные с целевой машины. Одним из наиболее простых вариантов является публикация через веб сервер для доступа из браузера. Приведу несколько решений, как для одноразового применения, так и для постоянного целевого использования.
📌 python нынче поставляется в комплекте многих операционных систем, его базовый http сервер и применим.
- Переходим в каталог с данными.
- Запускаем сервер
1
python3 -m http.server 8000 - Забираем данные через браузер.
- Завершаем работу сервера.
Идем в браузер по заданному адресу

Для разовых манипуляций более чем достаточно.
📌 Браузерный файловый менеджер File Browser
Уже куда более приятный инструмент для работы с расшаренными ресурсами прямо в веб интерфейсе.
- Загрузка каталогов и файлов на / с сервера
- Создание, удаление, изменение файлов и директорий
- Доступ по временной ссылке
- Многопользовательский доступ
- Обработка событий с возможностью добавления собственных скриптов
1
2
3
4
5
6
7
8
9
10
11
# устанавливаем
curl -fsSL https://raw.githubusercontent.com/filebrowser/get/master/get.sh | bash
# задаем адрес и порт в настройках
filebrowser config init -a 0.0.0.0 -p 8080
# добавляем админа
filebrowser users add demo demo -perm.admin
# запускаем над каталогом с данными
filebrowser -r /home/desoft/data
Идем в браузер по заданному адресу

📌 Схожим набором функций обладает еще одно минималистичное решение - Mikochi
Можно запустить также через бинарник, поднять в docker или kubernetes.
1
2
3
4
5
# запускаем
docker run \
-p 8080:8080 -v /home/desoft/data:/data \
-e DATA_DIR="/data" -e USERNAME=demo \
-e PASSWORD=demo zer0tonin/mikochi:latest
Идем в браузер по заданному адресу

📌 Богатая на возможности программа RClone
Помимо основного назначения синхронизации файлов с облачными хранилищами, утилита предоставляет функцию трансляции файловой системы через веб сервер для взаимодействия по http протоколу.
1
2
3
4
5
6
7
# устанавливаем
sudo -v ; curl https://rclone.org/install.sh | sudo bash
# запускаем
# --dir-cache-time - время хранения кэша записей смонтированной директории
# --poll-interval - время ожидания между опросами изменений
rclone serve http -vvv /home/desoft/data --addr 0.0.0.0:8020 --dir-cache-time 5s --poll-interval 0
Идем в браузер по заданному адресу

- Широкий выбор операционных систем, в том числе
Linux, macOS, BSD, Windows - Поддержка буферизации и кэширования файлов
- Подключение как локальных, так и облачных хранилищ
- Поддержка запросов на чтение отдельных частей файлов
- Мониторинг обращений
- Гибкая настройка параметров
Полный перечень доступных конфигураций здесь.
