Пост

Организация доступа к локальным данным по http протоколу

Трансляция файловой системы через веб сервер

Существует множество способов быстро передать данные с целевой машины. Одним из наиболее простых вариантов является публикация через веб сервер для доступа из браузера. Приведу несколько решений, как для одноразового применения, так и для постоянного целевого использования.

📌 python нынче поставляется в комплекте многих операционных систем, его базовый http сервер и применим.

  • Переходим в каталог с данными.
  • Запускаем сервер
    1
    
    python3 -m http.server 8000
    
  • Забираем данные через браузер.
  • Завершаем работу сервера.

Идем в браузер по заданному адресу пример 1

Для разовых манипуляций более чем достаточно.

📌 Браузерный файловый менеджер 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

Идем в браузер по заданному адресу пример 2

📌 Схожим набором функций обладает еще одно минималистичное решение - 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

Идем в браузер по заданному адресу пример 3

📌 Богатая на возможности программа 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

Идем в браузер по заданному адресу пример 4

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

Полный перечень доступных конфигураций здесь.

Больше полезной информации в Telegram-канале