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

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

Хочете коротко представити? Просто перегляньте відео вище!

Зміст

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

вступ

Файловий сервер Pafera працює в Android Termux

Минулого року я випустив утиліту під назвою the Файловий сервер Pafera . Це консольна програма, написана мовою Rust, яка запускає веб-менеджер файлів для ваших пристроїв, що дозволяє легко обмінюватися файлами з будь-яким веб-браузером із зручною функцією слайд-шоу для показу ваших фотографій і піктограм shiba. Це означає, що ви можете піти на вечірку й дозволити 200 друзям переглядати ваші нещодавні фотографії з відпустки на своїх телефонах у власний час і темп.

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

Однак, будучи консольним додатком, завжди була одна велика проблема, яка заважала йому бути універсальним рішенням для всіх ваших пристроїв:

Консольні програми не можуть працювати на iOS, тобто ви не можете запустити файловий сервер Pafera на iPhone або iPad...

Дотепер.

Нова програма для обміну файлами Flutter

Під час різдвяних канікул у мене був вільний час, поки Чорногорія святкувала свята, тож я спробував написати багатоплатформену програму-супутник у 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 у своїй системі для використання програми.

Розширені функції

Окрім простого обміну файлами, є чимало розширених функцій, тому я дам тут короткий огляд.

Ім’я хосту – це те, що відображається іншим пристроям, коли вони натискають "Пошук інших серверів". Ви можете використовувати його, щоб швидко відрізнити один пристрій від іншого, якщо ви користуєтеся кількома пристроями одночасно.

Папка — це папка файлової системи, до якої ви фактично надаєте спільний доступ. Ви можете натиснути "Використовувати папку документів" за замовчуванням у Документи/спільно, або ви можете натиснути "Вибрати папку" щоб вибрати іншу папку. Вам також може знадобитися натиснути "Використати папку документів" якщо iOS не оновлює належним чином налаштування програми під час виходу зі сну.

Використовувати поточну IP-адресу автоматично визначає поточну IP-адресу WiFi вашого пристрою. Як і у випадку "Використовувати папку документів" використовуйте його, якщо iOS не оновлює програму належним чином і вона все ще використовує IP-адресу попередньої мережі WiFi.

"Поділитися на всіх інтерфейсах" встановлює публічний 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 зобов’язана дозволяти сторонні програми згідно з постановою ЄС.

Як завжди, я сподіваюся, що ви знайдете цю програму корисною, і якщо ви хочете налаштувати її для власних цілей, я завжди доступний як технічний консультант. весело провести час!

Про автора

Джим займається програмуванням відтоді, як отримав IBM PS/2 у 90-х. До цього дня він як і раніше вважає за краще писати HTML і SQL вручну, і зосереджується на ефективності і коректності в своїй роботі.