De nieuwe manier om eenvoudig bestanden te delen vanaf een iPhone

De Pafera File Server is nu beschikbaar op iOS!
2024-01-20 16:39:38
👁️ 1028
💬 0

Wil je een snelle introductie? Bekijk dan gewoon de video hierboven!

Inhoud

  1. Invoering
  2. De nieuwe Flutter-app voor het delen van bestanden
  3. De app gebruiken
  4. Geavanceerde functies
  5. Uitgeschakelde functies op mobiel
  6. Downloads en broncode
  7. Aanmelden als bètatester

Inleiding

De Pafera-bestandsserver in Android Termux

Vorig jaar heb ik een hulpprogramma uitgebracht met de naam Pafera-bestandsserver . Het is een console-app geschreven in Rust die een webgebaseerd bestandsbeheer voor je apparaten uitvoert, waarmee je eenvoudig bestanden kunt delen met alles dat een webbrowser heeft, met een handige diashowfunctie om je foto's en shiba-pictogrammen te laten zien. Dit betekent dat je naar een feestje kunt gaan en 200 vrienden allemaal op hun eigen telefoon door je recente vakantiefoto's kunt laten bladeren, op hun eigen tijd en tempo.

Later, toen verschillende suggesties en gebruikspatronen binnenkwamen van vrienden en willekeurige internetvrienden, begon ik steeds meer functies toe te voegen. Het is nu in staat om hele mappenbomen te rsyncen, mediabestanden te transcoderen, bestanden te openen met native besturingssysteem apps en automatisch bestanden te synchroniseren tussen je apparaten.

Omdat het echter een console-app was, was er altijd één groot probleem waardoor het geen universele oplossing voor al je apparaten kon zijn:

Console apps kunnen'niet draaien op iOS, wat betekent dat je de Pafera File Server niet kunt draaien op iPhones of iPads...

Tot nu.

De nieuwe Flutter-app voor het delen van bestanden

Ik had wat vrije tijd tijdens de kerstvakantie terwijl Montenegro de feestdagen vierde, dus ik experimenteerde met het schrijven van een multiplatform companion app in Flutter/Dart waarmee je eenvoudig servers kon doorzoeken vanaf je telefoon. Op die manier konden mijn minder technisch ingestelde vrienden gewoon op twee knoppen drukken en verbinding maken met mijn servers.

Gaandeweg kwam ik erachter dat je Dart kon gebruiken om je eigen webserver op iOS-apparaten te draaien, en ik dacht...

Hé, waarom implementeer ik de bestandsserver niet gewoon in Dart!

Dus twee weken later is de app er.

De Pafera-bestandsserver op een iPhone

Nu is de prestatie verschrikkelijk traag vergeleken met de Rust-versie. De Rust server kan ongeveer 40.000 verzoeken per seconde verwerken...

Terwijl de Dart-versie slechts ongeveer 400.... kan serveren.

Maar het belangrijkste is dat het werkt...

en het installeert op iPhones!

De app gebruiken

Door een bug in de PDFx bibliotheek met recente versies van Flutter, heb ik'moeten stoppen met het gebruik van mooie iconen voor alle knoppen, omdat ze werden weergegeven als lelijke zwarte lijnen.

De basiswerking blijft echter hetzelfde.

Basisbediening

Zodra iedereen's verbonden is met hetzelfde WiFi-netwerk of je telefoon's hotspot, klik je gewoon op het pictogram van de app, kies je de map die je wilt delen en tik je op "Start Server".

Klik dan op de QR code knop, laat je vrienden deze scannen en dan kunnen ze vrolijk door je map bladeren op hun telefoons en zelfs films streamen van jouw telefoon rechtstreeks naar hun telefoons.

Als je vriend een laptop of desktopcomputer gebruikt, is dat ook geen probleem. Typ gewoon de URL boven de QR-code in op hun apparaat en ze kunnen precies hetzelfde doen.

Als je niet op iOS of Android draait, is dat ook geen probleem. Flutter Apps werken prima op OSX, Windows en Linux, dus je krijgt dezelfde functionaliteit, en zelfs meer als je rsync, FFMpeg en ImageMagick op je systeem installeert zodat de app het kan gebruiken.

Geavanceerde functies

Er zijn nogal wat geavanceerde functies naast het eenvoudig delen van bestanden, dus ik'zal hier een kort overzicht geven.

Hostnaam is wat andere apparaten te zien krijgen als ze klikken op "Zoeken naar andere servers". Je kunt het gebruiken om snel het ene apparaat van het andere te onderscheiden als je een paar apparaten tegelijk deelt.

Map is de map van het bestandssysteem die je'deelt. Je kunt klikken op "Gebruik documentenmap" voor de standaardmap in Documenten/Gedeeld, of je kunt klikken op "Kies map" om een andere map te kiezen. Het kan ook nodig zijn om op "Gebruik documentenmap" te klikken als iOS de instellingen van de app'niet goed ververst bij het hervatten vanuit de slaapstand.

Gebruik huidige IP detecteert automatisch je apparaat's huidige WiFi IP. Net als bij "Gebruik documentenmap," gebruik je dit als iOS de app niet goed ververst en het'nog steeds een IP gebruikt van een vorig WiFi-netwerk.

"Share on all interfaces" stelt het publieke IP in op 0.0.0.0, wat betekent dat iedereen op alles waarmee je'verbonden bent zal je server kunnen zien. Handig op desktops met meer dan één verbinding, maar wees voorzichtig met het gebruik op openbare plaatsen.

"Start Sharing" zal de server starten en de startpagina voor jou openen om te beheren. Als je er nogmaals op klikt, stopt de server en blijven je bestanden veilig.

"Load last settings" en "Save current settings" doen precies wat ze zeggen. Je instellingen worden opgeslagen in Documents/paferafileserver.cfg, net als bij de console Rust versie.

Geavanceerde opties

De verschillende wachtwoordopties zijn er om verschillende mensen verschillende toegangsniveaus te geven.

Normaal gesproken kan iedereen je bestanden zien door gewoon verbinding te maken met je server, maar als je daaronder "Enable private files" aanvinkt, dan kan niemand je bestanden zien zonder het leeswachtwoord.

Het schrijfwachtwoord wordt gebruikt om bestanden te uploaden, verplaatsen, kopiëren of verwijderen. Zonder dit wachtwoord kan niemand anders iets doen op je systeem, behalve je bestanden bekijken.

Het shell wachtwoord is nutteloos op de mobiele app, maar is erg handig op desktop besturingssystemen en Termux op Android. Je kunt er arbitaire systeemcommando's mee uitvoeren, wat het erg krachtig en tegelijkertijd erg gevaarlijk maakt. Deze functie is standaard uitgeschakeld en je moet zowel een shell-wachtwoord invoeren en vink "Enable shell commands" hieronder aan om het te gebruiken.

Met de verschillende in- en uitschakelopties kunt u kiezen wat anderen met uw systeem kunnen doen zelfs wanneer ze hebben al het juiste wachtwoord. Deze overschrijven alle andere opties, dus als je het kopiëren van bestanden uitschakelt, zal niemand - zelfs jijzelf niet - bestanden kunnen kopiëren.

De speciale optie "Disable SSH Keycheck" is voor mensen zoals ik die constant rondzwerven terwijl ze bestanden heen en weer synchroniseren tussen verschillende apparaten. Normaal gesproken vraagt SSH om bevestiging als er verbinding wordt gemaakt met een systeem waarvan het IP-adres is veranderd, zelfs als de identiteit van dat systeem al bekend is. Deze optie stelt je in staat om automatisch bestanden te synchroniseren op verschillende netwerken zonder dat je naar de console hoeft te gaan om SSH verbindingen te bevestigen. Gebruik het met voorzichtigheid wanneer je op netwerken zit waar je zelf geen controle over hebt.

Uitgeschakelde functies op mobiel

In tegenstelling tot het draaien in Termux of een desktopomgeving, hebben de iOS en Android apps geen toegang tot een shell, rsync, ImageMagick of FFMpeg, dus alle geavanceerde synchronisatie- en transcoderingsfuncties zijn uitgeschakeld.

Omdat mobiele besturingssystemen achtergrond-apps op elk moment kunnen uitschakelen, worden automatische taken met een timer ook uitgeschakeld.

Er zijn mogelijke workarounds voor al deze aspecten, maar de tijd die nodig is om deze functies te integreren gaat mijn intentie op dit moment te boven. Als iemand me wil betalen om ze toe te voegen, dan zullen we zien wat er gebeurt. 😁

Downloads en broncode

Zoals bij al mijn projecten wordt de broncode gehost op Codeberg en kan deze hier gevonden .

Voor voorgecompileerde binaries kunt u Blader hier door de release directory ...

Of klik gewoon op de links hieronder:

Vanwege de ondertekeningsvereisten van Apple moeten iOS- en OSX-gebruikers wachten tot de app beschikbaar is in de App Store, of de broncode downloaden en hun eigen versie voor hun apparaten compileren.

Aanmelden als bètatester

Omdat dit een nieuwe release is, weet ik'zeker dat er veel bugs en vreemd gedrag op verschillende systemen zullen zijn. Als je deze app voor mij wilt beta-testen, stuur me dan een e-mail met je apparaat en versie van je besturingssysteem en ik'zal je installeren op TestFlight.

Het distribueren van een Flutter app is eigenlijk veel gecompliceerder dan de Rust versie, waar ik gewoon een enkel uitvoerbaar bestand upload en klaar ben met het hele ding, dus wees alsjeblieft begripvol als het drie weken duurt voordat Apple mijn app heeft gecontroleerd en het heeft toegelaten tot de iOS App Store. Het zou veel eenvoudiger moeten zijn wanneer Apple verplicht is om apps van derden toe te staan volgens de EU-regel.

Zoals altijd hoop ik dat jullie deze app nuttig vinden, en als je hem wilt aanpassen voor je eigen doeleinden, ben ik'altijd beschikbaar als technisch adviseur. Veel plezier!

Over de auteur

Jim programmeert al sinds hij in de jaren 90 een IBM PS/2 terugkreeg. Tot op de dag van vandaag schrijft hij HTML en SQL nog steeds het liefst met de hand, en richt hij zich op efficiëntie en correctheid in zijn werk.