Неужели так сложно делиться файлами с другом?

Представляем Pafera File Server — небольшой сервер Android, который превратился в полноценный файловый менеджер, средство просмотра слайд-шоу и медиасервер.
2023-04-17 22:41:37
👁️ 837
💬 0

Содержание

  1. Введение
  2. Кандидаты
  3. Решение
  4. Как это работает?
  5. Установка сервера
  6. Просмотр файлов
  7. Системное меню
  8. Меню Файл
  9. Использование слайд-шоу
  10. Конфигурация
  11. Планы на будущее

Введение

Ого! Это действительно круто. Можешь поделиться этим со мной?

Будучи технарём, у которого постоянно появляются новые гаджеты и приложения, я не могу вспомнить, сколько раз мне говорили ту или иную версию этой фразы на вечеринках, встречах или даже в ожидании метро.

Однако я точно помню, сколько раз мы заканчивали следующим диалогом:

Мне Конечно! Что вы используете?
Друг Ну, у меня есть приложение А.
Мне Хм... У меня такого нет. У тебя есть приложение B?
Друг Нет, у меня и этого нет. А у вас есть метод С?
Мне Хорошо. Давайте попробуем это. Хм... не подключается. Как насчет метода D?
Друг Это тоже не работает.

Совместное использование файлов стало обычной задачей с тех пор, как компьютеры стали чем-то обыденным в темные века. Сначала нетерпеливые программисты с удовольствием смотрели на распечатки друг друга, затем они стали копировать перфокарты. После этого магнитные диски стали новым горячим трендом, затем технология перешла на оптические диски, флэш-накопители и беспроводную передачу данных.

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

А что если попробовать что-то другое?

Кандидаты

Но Джим, ты говоришь, я каждый день обмениваюсь файлами без проблем?

Что ж, давайте рассмотрим распространенные методы, которые люди используют для передачи файлов.

Метод Неудача
1. Воздушное десантирование Можно ли использовать AirDrop на телефоне Android? Хорошо!
2. Поделиться рядом Можно ли использовать NearBy Share для обмена файлами с iPhone? Хм...
3. AirDroid, SHAREit, Resilio Sync, Send Anywhere и т. д. Вы собираетесь попросить кого-то на автобусной остановке быстро установить то же приложение, что и вы, просто чтобы он мог получить файл? Ну ладно!
4. Программа чата Многие программы чата ограничивают типы файлов, которые вы можете отправлять, повторно сжимают ваши HD-видео, и вам приходится ждать, пока файл медленно загрузится, а затем скачивать на устройство вашего друга. Мы также сталкиваемся с проблемой метода 3, когда вам нужно установить ту же программу чата, чтобы передавать файлы.
5. Блютуз Даже при использовании Bluetooth 5 передача HD-видео объемом 700 МБ похожа на наблюдение за высыханием краски во влажную погоду во Флориде.
6. Электронная почта Большинство почтовых сервисов ограничивают размер вложений, и это даже медленнее, чем передача через чат-программы. Однако я всегда находил истории о пользователях iPhone, отправляющих файлы по электронной почте самим себе, просто чтобы распечатать документ, довольно забавными. ;)
7. DropBox, OneDrive и т. д. Возникают те же проблемы с загрузкой/скачиванием, что и в методах 3 и 4.
8. USB-флеш-накопитель На самом деле, это довольно выполнимо и быстро, но вам нужно помнить, что нужно носить его с собой, а также иметь правильный адаптер для сопряжения с устройством вашего друга. Я сам всегда ношу его в кармане, но это скорее удача и неудача, будет ли устройство человека, с которым вы делитесь, поддерживать ваш диск.
9. Попросите друга сфотографировать/снять видео экрана вашего телефона камерой своего телефона! 100% успешная передача данных плохого качества!
Что происходит, если обмен не работает?

В данный момент дела у нас идут не очень хорошо, не правда ли?

Решение

Короче говоря, для того, чтобы создать эффективное, универсальное решение, нам нужно что-то, что

  1. Можно использовать на любом устройстве
  2. Поддерживает прямую передачу по WiFi без загрузки на сервер и обратно.
  3. Не будем пережимать наше видео 4K в 480p.
  4. Работает там, где даже не ловит телефонный сигнал.

Вот если бы только существовало что-то, что было бы предустановлено на каждом устройстве, предназначено для доступа к другим компьютерам с помощью общепринятого протокола и имело бы возможность загружать/выгружать файлы...

Что-нибудь...

нравиться...

а...

веб-браузер!

Windows CE поддерживает HTML 5? Отлично!

Как это работает?

Так как же работает веб-браузер при передаче файлов?

Есть три основных шага.

  1. Подключите оба устройства к одной и той же беспроводной сети/точке доступа.
  2. Пусть ваш друг введет адрес вашего устройства в своем браузере.
  3. Просматривайте, скачивайте и загружайте столько, сколько захотите
Даже в 2023 году использование собственной точки доступа вашего телефона по-прежнему остается самым быстрым способом передачи файлов, особенно если вы отправляетесь в поход в горы!

Преимущества этого подхода:

  1. Работает на любом устройстве, где есть веб-браузер (то есть практически на всех современных устройствах)
  2. Вам не нужно нажимать на каждый файл по отдельности, нажимать «отправить» и ждать, пока ваш друг примет. Ваш друг может посмотреть, что он хочет, и скачать файлы самостоятельно.
  3. Целая группа людей может просматривать страницу одновременно, а не по одному.

Конечно, этот сервер не будет работать на iPhone и iPad, поскольку Apple не только ограничивает доступ к файловой системе на устройствах iOS, но и вы не сможете запускать программы Linux, если у вас нет прав root с помощью Cydia.

К счастью, все, что вам нужно, это *одно* устройство для запуска сервера, так что ваши друзья Apple могут по-прежнему подключаться к вашему телефону Android без каких-либо проблем и по-прежнему загружать и выгружать файлы. Кроме того, они уже привыкли к тому, что не могут использовать другие системы, поскольку AirDrop работает только для устройств Apple. ;)

Установка сервера

Для скорости и эффективности Pafera File Server — это приложение Linux/Windows, написанное на Rust, поэтому, к сожалению, вы не можете просто загрузить его из магазина приложений. Я могу сделать версию для магазина приложений на Kotlin позже, если кто-то захочет мне за это заплатить, но если вы не Джерри Магуайр, вам пока придется довольствоваться версией Rust.

К счастью, многие программисты с открытым исходным кодом, гораздо более умные, чем я, объединились для создания приложений, которые позволяют запускать программы Linux на вашем телефоне Android с разной степенью успеха.

Поэтому все, что вам нужно сделать, это установить Termux на свой телефон, скопировать и вставить две команды и нажать Enter пару раз. Это не установка в один клик, но это и не SpaceX, строящая StarShip, и вы получите доступ к совершенно другой экосистеме крутых программ для игры.

Это твой мозг под наркотиками... эээ... телефон под Termux.

Таким образом, установка выполняется следующим образом:

  1. Загрузите приложение Termux от F-Droid или из Кодеберга
  2. Запустить приложение
  3. Скопируйте и вставьте следующее в терминал и нажмите Enter.

    curl -O https://pafera.com/installfileserver.sh
    
  4. Скопируйте и вставьте еще одну команду в терминал и нажмите Enter.

    bash installfileserver.sh
    
  5. Нажмите клавишу Enter на клавиатуре для получения любых подсказок, которые появятся в процессе обновления пакета.
  6. Попросите друга ввести URL-адрес, показанный на экране.

    Поиск URL среди отображаемых

Теперь, после установки сервера, вы можете выйти из него в любое время, просто выйдя из сеанса Termux.

А если вы хотите снова запустить сервер с паролем, который позволяет вносить изменения, то введите

./paferafileserver password=yourpasswordhere

в Termux или просто нажмите стрелку вверх, чтобы выбрать ранее введенные команды.

Это не так просто, как просто открыть уведомления и нажать «NearBy Share», но вы также не запустите сервер случайно, и вы получите гораздо больше функциональных возможностей для решения своих проблем.

Если вы программист Rust, то установка для вас будет намного проще.

Все, что вам нужно сделать, это набрать

cargo install paferafileserver

Подождите, пока груз сделает свое дело, и вуаля! Готово!

Если вы хотите запустить Pafera File Server на Windows или Linux, ниже доступны готовые двоичные файлы 7-Зип архивы.

  1. Linux (amd64)
  2. Termux на Android 7+
  3. Linux (armv7h для Debian на Userland - Android 5 и 6)
  4. Автономный exe-файл Windows
  5. Полная версия Windows (включая FFMpeg и ImageMagick)

Просмотр файлов

Как только ваш друг введет URL-адрес вашего сервера в свой браузер, его телефон должен выглядеть примерно так.

Домашняя страница файлового сервера Pafera

Если вы не видите никаких файлов, убедитесь, что у вашего друга включен JavaScript, так как мы используем скрипты для сортировки и отображения файлов.

Для начала начнем с левого верхнего угла: кнопка системного меню, кнопка недавних файлов и кнопка домашнего каталога.

Нажатие на файлы

Нажатие на миниатюру любого изображения запустит слайд-шоу, а нажатие на имя файла загрузит файл.

Нажатие на кнопку меню для файла откроет меню действий для этого файла, а нажатие на квадрат под ним выберет файл.

Чтобы быстро выбрать диапазон файлов, нажмите кнопку выбора для первого файла, затем нажмите кнопку меню для последнего файла и выберите «Выбрать здесь».

Системное меню

Всплывающее системное меню

Поиск и глубокий поиск (горячие клавиши t и f) позволяют вам ввести несколько букв и увидеть все файлы, содержащие эти буквы.

Разница в том, что обычный поиск просматривает только файлы в текущей папке, тогда как глубокий поиск просматривает также все папки внутри этой папки.

Slide Show и Deep Slide Show (горячие клавиши z и x) следуют той же логике. Выберите тот, который вам нужен, в зависимости от того, хотите ли вы включить изображения во все папки внутри этой папки или нет.

Переключить вид (горячая клавиша v) переключает обычный подробный вид на вид значков всех изображений и видео внутри этой папки.

Сортировка (горячая клавиша s) позволяет вам выбрать порядок сортировки файлов. Вы можете выбрать сортировку файлов по имени файла, размеру, дате и разнице во времени. Лично я предпочитаю вид с разницей во времени, так как «Пять минут назад» для меня гораздо полезнее, чем «14:55».

Вид Recent Files (горячая клавиша e) покажет вам последние измененные 512 файлов внутри текущей папки и все папки внутри этой. Будьте осторожны, используя этот вид для вашей домашней папки, так как проверка всех файлов может занять некоторое время, если у вас есть сотни тысяч маленьких файлов для проверки.

Set Password (Hotkey w) позволит вашему другу ввести пароль для изменения, загрузки и удаления файлов. Без этого пароля никто не сможет ничего изменить на вашем телефоне, поэтому держите его в безопасности. Вы можете установить его либо в командной строке, введя password=yaddayaddayadda или в paferafileserver.cfg, используя формат

{
  "password":"yaddayaddayadda"
}

Новая папка (горячая клавиша o) предложит вам ввести имя новой папки, которую следует создать внутри текущей папки.

Показать скрытые файлы (горячая клавиша i) включит/выключит отображение файлов и папок, имена которых начинаются с точек. Unix использует это слово для обозначения того, что эти файлы обычно не должны быть видны пользователю.

Включение функции «Загрузка в один клик» (горячая клавиша k) позволит вам мгновенно загружать файл, просто нажав на него, а не отображая его в браузере.

Показать горячие клавиши (горячая клавиша h) покажет вам, какие клавиши можно использовать как в режиме просмотра папок, так и в режиме слайд-шоу.

Zoom In (горячая клавиша .) и Zoom Out (горячая клавиша ,) изменят размер всего на экране. Используйте их для настройки страницы, если размеры вашей системы по умолчанию вам не подходят.

Меню Файл

Всплывающее меню «Файл»

Select to Here позволяет вам выбрать все файлы между теми, которые вы выбрали ранее, и этим временем. Это довольно удобно в качестве замены, чтобы избежать замены контекстного меню для копирования ссылок как на настольном компьютере, так и на мобильном устройстве.

Выбрать все (горячая клавиша a) и Выбрать ничего (горячая клавиша n) говорят сами за себя. Просто будьте осторожны, когда используете их для удаления всех файлов, которые вы Действительно хочу удалить все файлы.

Отправить (горячая клавиша g) откроет окно сканирования, в котором вы сможете увидеть все остальные устройства, на которых в вашей сети запущен файловый сервер Pafera.

Отправка файлов на другой сервер

Обратите внимание, что все устройства должны быть в одной подсети и работать на одном порту, поэтому если вы находитесь на 192.168.0.100, а устройство, на которое вы пытаетесь отправить данные, находится на 192.168.1.100, то сканер не обнаружит другое устройство. Конечно, вы всегда можете просто войти на сервер этого устройства и загрузить файлы с помощью браузера.

Для простоты все файлы, которые вы отправляете на другое устройство, собираются в папке «Получено» в корне сервера. Я могу изменить это позже, но на данный момент удобно, чтобы все новые файлы появлялись в той же папке, откуда вы можете переместить их в соответствующее место позже.

Новый файл в папке Received

Загрузка (горячая клавиша l), переименование (горячая клавиша r), перемещение (горячая клавиша m), копирование (горячая клавиша c), удаление (горячая клавиша d) и постоянное удаление (p) — все это может работать с несколькими файлами одновременно, за исключением загрузки в мобильных браузерах, где вы можете загружать только один файл за раз. Просто будьте осторожны, потому что постоянное удаление на самом деле означает Постоянный Удалить. Всегда сохраняйте копию важных файлов на другом устройстве, прежде чем нажимать кнопку удаления.

Отмена удаления (горячая клавиша u) используется только для файлов, которые были удалены один раз и, следовательно, имеют расширение ".deleted". Она не может верните навсегда удаленные файлы. Они не тоскуют. Они ушли. Этих файлов больше нет. Они бывшие файлы.

Использование слайд-шоу

Интерфейс слайд-шоу. Все внизу кликабельно.

Среди главных функций, которые люди всегда просят в файловом браузере, — хорошее слайд-шоу. Когда вы носите около 6000 фотографий своего сына на своем телефоне, чтобы похвастаться ими перед случайными незнакомцами, нетрудно понять, почему. ;) У большинства клиентов SMB нет предпросмотра изображений или слайд-шоу, поэтому попытка найти одно определенное изображение с помощью приложения iPhone Files довольно утомительна.

Функцию слайд-шоу в файловом сервере Pafera можно активировать несколькими способами:

  1. Нажмите на миниатюру изображения.
  2. Выберите «Слайд-шоу» в системном меню.
  3. Выберите «Deep Slide Show» в системном меню.
  4. Выполните поиск или глубокий поиск, чтобы выбрать файлы, которые вы хотите продемонстрировать, и затем нажмите на миниатюру первого изображения.

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

Если вы хотите перейти к определенному номеру изображения, просто щелкните по положению изображения на панели инструментов, введите нужный номер и перейдите оттуда.

Выбор номера для перехода

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

Однако если вы используете ноутбук или к вашему телефону подключена Bluetooth-клавиатура, использование слайд-шоу становится еще проще.

Стрелка влево Предыдущее изображение
Стрелка вправо Следующее изображение
Стрелка вверх Удалить изображение
Стрелка вниз/Escape Выйти из слайд-шоу
г Случайное изображение
г Перейти к номеру изображения
д Повернуть на 90 градусов против часовой стрелки
е Повернуть на 90 градусов по часовой стрелке

Конфигурация

Pafera File Server можно настроить из JSON-файла с именем paferafileserver.cfg в той же папке или из аргументов командной строки в форме ключ=значение. Если указаны оба, то аргументы командной строки переопределят настройки файла конфигурации.

Обычная командная строка:

paferafileserver [hostname=localhost] [serverroot=/home/jim] [password=password] [ip=0.0.0.0] [port=9999]

Таким образом, если вы хотите предоставить каталог «Изображения Джима» всем посетителям порта 5000, вы должны использовать

paferafileserver serverroot=/home/jim/Pictures port=5000

Если вы не укажете serverroot, по умолчанию будет использоваться ваш домашний каталог.

Если вы не укажете IP-адрес и порт, по умолчанию будет использоваться 0.0.0.0:9999.

Кроме того, в командной строке можно ввести следующие параметры, чтобы отключить определенные функции, даже если у пользователя есть правильный пароль.

disabledelete
disablerename
disablemove
disablecopy
disablenewfolder
disabledelete
disablepermanentdelete
disablesend
disableupload

Все аргументы командной строки также можно указать в файле JSON с именем paferafileserver.cfg в текущей папке, например:

{
  "hostname":               "JimsLaptop",
  "password":               "SecretPassword12345",
  "disabledelete":          1,
  "disablepermanentdelete": 1
}

Вы можете выбрать любой наиболее подходящий для вас метод.

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

Для Termux на Android самый простой способ запустить исполняемый файл — установить приложение Termux Widget из F-Droid и настроить командную строку внутри скрипта виджета.

Планы на будущее

На данный момент не планируется никаких дальнейших изменений, поскольку это был всего лишь забавный ознакомительный проект по работе с Rust, но если кто-то другой захочет

  1. Напишите версии Kotlin/Swift для размещения в магазинах приложений
  2. Перевести это приложение на несколько языков
  3. Создавайте различные темы CSS
  4. Реализовать алгоритм, подобный rsync, для резервного копирования и восстановления
  5. Или что-нибудь еще, что вы могли бы придумать.

Я, безусловно, буду приветствовать любые дополнения к этому простому проекту.

Как всегда, я надеюсь, что вы найдете это приложение полезным, и если вы захотите настроить его для своих целей, я всегда доступен в качестве технического консультанта. Приятного просмотра!

об авторе

Джим программирует с тех пор, как в 90-х у него появился IBM PS/2. По сей день он предпочитает писать HTML и SQL вручную и фокусируется на эффективности и корректности в своей работе.