September 27, 2023

Простейший обмен файлами с гаджета на раз-два.

Я нечасто что-то пишу, но возникают, порой, банальные вопросы, а как передать файлы с гаджета на собственный компьютер/ноутбук, не прибегая к подключению кабелем, не занимаясь поиском драйверов. Ответ есть. Wi-Fi дома и на работе - наше все. Но если в офисе это политика компании-работодателя, то дома мы ничем не ограничены.

Обмен данными осуществляется через клиент-сервер. То есть на нашем компьютере/ноутбуке есть сервер, а на гаджете - клиент. Как показывает практика, чем проще программное обеспечение, тем оно и безопаснее. И вопрос, как избавиться от этих пресловутых облаков, где непонятно, будут ли просмотрены наши данные или нет, а вот сохранить у себя?

Я рассмотрю пример на Windows, на обмене между гаджетом и WebDav-сервером.

Начинаем с сервера. Самое сложное. Хотя... Подчеркну - так можно делать в закрытой среде, например, в локальной сети дома, офиса и т.д. Открывая это на весь интернет, параметры нужны иные, а надо ли это, если есть облака и иные файлообменники?

Итак, DUFS - файловый сервер с открытым исходным кодом. Скачать можно здесь. Штука консольная, но если Windows 64 битной разрядности, то это файл dufs-v0.36.0-aarch64-pc-windows-msvc.zip. Если 32-битная, ну, тогда i686.

Теперь нам надо написать пакетный исполняемый файл. Для тех, кто не в курсе, эти файлы имеют расширение bat или cmd и содержат команды. Это пишется в Блокноте или альтернативах и сохраняется как bat-файл. Расширение можно всегда поменять.

У меня файл находится в папке с dufs.exe, и имеет следующее содержимое:

dufs.exe -A -p 8090 --log-format "$remote_addr $http_user_agent $request $status" -a "academic:academic@/:rw" "h:"

Где: -A - позволить всё. Ну, мы ж в изолированной сети. -p 8090 - прослушиваемый сервером порт. Можно выбрать люой из незанятых до 65535. -a "academic:academic@/:rw" "h:" - это авторизация с правами чтения и записи, тут логин мой, пароль я поставил такой же, понятно, что у меня он иной, а H: - это путь к папке. В данном случае к диску, но можно и папку прописать. Поэтому прописываем свой путь.

Формат лога в консоли - ну, это я так для себя выбрал, параметр можно затереть, информации будет меньше. Внешне выглядит это так:

Да, я обращаюсь к серверу, а он мне отдает или принимает файлы.

Теперь нам надо настроить клиент. У нас уже установлен Cx Проводник, и там мы просто переходим на вкладочку "Сеть" и нажимаем "Новое место":

Далее мы переходим на "Удаленные службы" и выбираем WebDAV:

Далее мы вводим данные сервера, это IP нашего сервера, порт, который мы задали в батнике, ну, и имя и пароль:

Да, у нас нет сертификата HTTPS, поэтому ставим HTTP, напоминаю, что мы исходим из того, что сеть изолирована. Ну, и в итоге у нас выглядит все вот так:

Только с разницей в IP/портах/доступах. Неплохо знать о том, что роутеры, как правило, предлагают устройствам IP-адрес динамический на основе MAC-адреса сетевой карты, но если IP занят, будет предложен другой. У роутеров есть такое понятие, как аренда IP-адреса, это характеристика DHCp-сервера. Обычно он не менее 36 часов, но в основной массе трое суток. Но у сотрудников интернет-провайдеров есть такой служебный термин, как "зажать MAC". Это не "отжать" ))). Это значит, что в настройки роутера или DHCP-сервера, каким бы он там ни был, вносится MAC-адрес устройства с сопоставлением ему постоянного IP-адреса, и что бы устройство у сервера не спрашивало, ему присвоится заданный IP. Ну, а далее мы избавляемся от того, что наш сервер поменяет IP и ходим туда просто нажатием трех кнопок на гаджете.