Новый способ легкого обмена файлами с iPhone

Файловый сервер Pafera теперь доступен на iOS!
2024-01-20 16:39:38
👁️ 1037
💬 0

Хотите быстрого введения? Просто посмотрите видео выше!

Содержание

  1. Введение
  2. Новое приложение Flutter File Share
  3. Использование приложения
  4. Расширенные функции
  5. Отключенные функции на мобильных устройствах
  6. Загрузки и исходный код
  7. Подать заявку на участие в бета-тестировании

Введение

Файловый сервер Pafera, работающий в Android Termux

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

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

Однако, поскольку это консольное приложение, всегда существовала одна большая проблема, которая мешала ему стать универсальным решением для всех ваших устройств:

Консольные приложения не могут работать на iOS, а это значит, что вы не сможете запустить Pafera File Server на iPhone или iPad...

До настоящего времени.

Новое приложение Flutter File Share

У меня было немного свободного времени на рождественских каникулах, пока Черногория праздновала праздники, поэтому я поэкспериментировал с написанием многоплатформенного сопутствующего приложения на Flutter/Dart, которое позволило бы вам легко просматривать серверы с вашего телефона. Таким образом, мои менее технически подкованные друзья могли бы просто нажать две кнопки и подключиться к моим серверам.

По ходу дела я понял, что Dart на самом деле можно использовать для запуска собственного веб-сервера на устройствах iOS, и я подумал...

Эй! Почему бы мне просто не реализовать файловый сервер в Dart!

Итак, спустя две недели приложение уже здесь.

Файловый сервер Pafera, работающий на iPhone

Теперь производительность ужасно низкая по сравнению с версией Rust. Сервер Rust может обслуживать около 40 000 запросов в секунду...

В то время как версия Dart может обслуживать только около 400....

Но главное, что это работает...

и он устанавливается на iPhone!

Использование приложения

Из-за ошибки в библиотеке PDFx в последних версиях Flutter мне пришлось прекратить использовать красивые иконки для всех кнопок, поскольку они отображались в виде уродливых черных линий.

Однако основная операция остается прежней.

Основная операция

Как только все подключатся к одной сети Wi-Fi или точке доступа вашего телефона, просто нажмите на значок приложения, выберите папку, которой вы хотите поделиться, и нажмите «Запустить сервер».

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

Если ваш друг использует ноутбук или настольный компьютер, это тоже не проблема. Просто введите URL, показанный над QR-кодом на его устройстве, и он сможет сделать то же самое.

Если вы не работаете на iOS или Android, это тоже не проблема. Приложения Flutter прекрасно работают на OSX, Windows и Linux, поэтому вы получите ту же функциональность и даже больше, если установите rsync, FFMpeg и ImageMagick в своей системе для использования приложением.

Расширенные функции

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

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

Папка — это папка файловой системы, которой вы фактически делитесь. Вы можете нажать «Использовать папку документов» для использования по умолчанию в Documents/shared или нажать «Выбрать папку», чтобы выбрать другую папку. Вам также может потребоваться нажать «Использовать папку документов», если iOS не обновляет настройки приложения должным образом при выходе из спящего режима.

Использовать текущий IP автоматически определяет текущий IP WiFi вашего устройства. Как и в случае с «Использовать папку документов», используйте его, если iOS не обновляет приложение должным образом и оно все еще использует IP из предыдущей сети WiFi.

«Share on all interfaces» устанавливает публичный IP-адрес на 0.0.0.0, что означает, что каждый на всем, к чему вы подключены, будет виден ваш сервер. Удобно на настольных компьютерах с более чем одним подключением, но будьте осторожны, используя его в общественных местах.

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

"Загрузить последние настройки" и "Сохранить текущие настройки" делают именно то, что говорят. Ваши настройки будут сохранены в Documents/paferafileserver.cfg, как и в консольной версии Rust.

Расширенные возможности

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

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

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

Пароль оболочки бесполезен в мобильном приложении, но очень полезен в настольных операционных системах и Termux на Android. Он позволяет вам запускать произвольные системные команды, что делает его очень мощным и очень опасным одновременно. Эта функция отключена по умолчанию, и вы должны ввести пароль оболочки и Чтобы использовать эту функцию, установите флажок «Включить команды оболочки» ниже.

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

Специальная опция «Отключить проверку ключей SSH» предназначена для людей вроде меня, которые постоянно перемещаются между устройствами, синхронизируя файлы между ними. Обычно SSH запрашивает подтверждение при подключении к системе, IP-адрес которой изменился, даже если идентификатор этой системы уже известен. Эта опция позволит вам автоматически синхронизировать файлы в разных сетях, не заходя в консоль для подтверждения подключений SSH. Используйте ее с осторожностью в сетях, которые вы не контролируете самостоятельно.

Отключенные функции на мобильных устройствах

В отличие от работы в Termux или среде рабочего стола, приложения для iOS и Android не имеют доступа к оболочке, rsync, ImageMagick или FFMpeg, поэтому все расширенные функции синхронизации и транскодирования отключены.

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

Для всех этих аспектов возможны обходные пути, но время, необходимое для интеграции этих функций, выходит за рамки моих намерений на данный момент. Если кто-то заинтересован в том, чтобы заплатить мне за их добавление, то посмотрим, что получится. 😁

Загрузки и исходный код

Как и во всех моих проектах, исходный код размещен на Codeberg и может быть найдено здесь .

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

Или просто нажмите на ссылки ниже:

Из-за требований Apple к подписи пользователям iOS и OSX придется дождаться появления приложения в App Store или загрузить исходный код и скомпилировать собственную версию для своих устройств.

Подать заявку на участие в бета-тестировании

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

Распространение приложения Flutter на самом деле намного сложнее, чем версия Rust, где я просто загружаю один исполняемый файл и все, поэтому, пожалуйста, отнеситесь с пониманием, когда Apple потребуется три недели, чтобы проверить мое приложение и разрешить его в iOS App Store. Все должно быть намного проще, когда Apple обязана разрешать сторонние приложения в соответствии с постановлением ЕС.

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

об авторе

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