Sie möchten eine kurze Einführung? Dann schauen Sie sich einfach das Video oben an!
Letztes Jahr habe ich ein Dienstprogramm namens Pafera-Dateiserver . Es handelt sich um eine in Rust geschriebene Konsolenanwendung, die einen webbasierten Dateimanager für Ihre Geräte ausführt und die einfache Dateifreigabe für alle Geräte ermöglicht, die über einen Webbrowser mit einer praktischen Diashow-Funktion zum Präsentieren Ihrer Fotos und Shiba-Symbole verfügen. Das bedeutet, dass Sie auf eine Party gehen und 200 Freunde Ihre letzten Urlaubsfotos auf ihren eigenen Telefonen anschauen lassen können, zu ihrer eigenen Zeit und in ihrem eigenen Tempo.
Später, als verschiedene Vorschläge und Nutzungsmuster von Freunden und zufälligen Fremden aus dem Internet eingingen, begann ich, immer mehr Funktionen hinzuzufügen. Es ist jetzt in der Lage, ganze Verzeichnisbäume per Rsync zu synchronisieren, Mediendateien zu transkodieren, Dateien mit nativen Betriebssystem-Apps zu öffnen und Dateien automatisch zwischen Ihren Geräten zu synchronisieren.
Da es sich jedoch um eine Konsolen-App handelte, gab es immer ein großes Problem, das verhinderte, dass sie eine universelle Lösung für alle Ihre Geräte darstellte:
Konsolen-Apps können nicht auf iOS ausgeführt werden, was bedeutet, dass Sie den Pafera File Server weder auf iPhones noch auf iPads ausführen können ...
Bis jetzt.
Während der Weihnachtsferien in Montenegro hatte ich etwas Zeit, also habe ich mit dem Schreiben einer plattformübergreifenden Begleit-App in Flutter/Dart experimentiert, mit der man ganz einfach von seinem Telefon aus Server durchsuchen kann. Auf diese Weise konnten meine weniger technisch versierten Freunde einfach zwei Tasten drücken und sich mit meinen Servern verbinden.
Dabei habe ich herausgefunden, dass man mit Dart tatsächlich einen eigenen Webserver auf iOS-Geräten betreiben kann, und ich dachte ...
Hallo! Warum implementiere ich den Dateiserver nicht einfach in Dart?
Zwei Wochen später ist die App da.
Nun ist die Leistung im Vergleich zur Rust-Version furchtbar langsam. Der Rust-Server kann etwa 40.000 Anfragen pro Sekunde verarbeiten ...
Während die Dart-Version nur für etwa 400 Personen reicht.
Aber wichtig ist, dass es funktioniert...
und es lässt sich auf iPhones installieren!
Aufgrund eines Fehlers in der PDFx-Bibliothek neuerer Flutter-Versionen musste ich die Verwendung hübscher Symbole für alle Schaltflächen einstellen, da diese als hässliche schwarze Linien angezeigt wurden.
Die grundlegende Bedienung bleibt jedoch dieselbe.
Sobald alle mit demselben WLAN-Netzwerk oder dem Hotspot Ihres Telefons verbunden sind, klicken Sie einfach auf das App-Symbol, wählen Sie den Ordner aus, den Sie freigeben möchten, und tippen Sie auf „Server starten“.
Klicken Sie anschließend auf die Schaltfläche mit dem QR-Code und lassen Sie Ihre Freunde ihn scannen. Anschließend können sie Ihren Ordner auf ihren Telefonen durchsuchen und sogar Filme von Ihrem Telefon direkt auf ihre Telefone streamen.
Wenn Ihr Freund einen Laptop oder Desktop-Computer verwendet, ist das auch kein Problem. Geben Sie einfach die über dem QR-Code angezeigte URL auf seinem Gerät ein, und er kann genau dasselbe tun.
Wenn Sie nicht mit iOS oder Android arbeiten, ist das auch kein Problem. Flutter-Apps funktionieren unter OSX, Windows und Linux einwandfrei, sodass Sie die gleiche Funktionalität erhalten und sogar noch mehr, wenn Sie rsync, FFMpeg und ImageMagick auf Ihrem System installieren, damit die App sie verwenden kann.
Da es neben der einfachen Dateifreigabe noch zahlreiche erweiterte Funktionen gibt, werde ich hier einen kurzen Überblick geben.
Der Hostname wird anderen Geräten angezeigt, wenn sie auf „Nach anderen Servern suchen“ klicken. Sie können ihn verwenden, um ein Gerät schnell von einem anderen zu unterscheiden, wenn Sie mehrere Geräte gleichzeitig freigeben.
Ordner ist der Dateisystemordner, den Sie tatsächlich freigeben. Sie können auf „Dokumentenordner verwenden“ klicken, um den Standardordner in „Dokumente/Freigegeben“ zu verwenden, oder Sie können auf „Ordner auswählen“ klicken, um einen anderen Ordner auszuwählen. Möglicherweise müssen Sie auch auf „Dokumentenordner verwenden“ klicken, wenn iOS die Einstellungen der App beim Fortsetzen aus dem Ruhezustand nicht richtig aktualisiert.
„Aktuelle IP verwenden“ erkennt automatisch die aktuelle WLAN-IP Ihres Geräts. Verwenden Sie diese Option wie „Dokumentenordner verwenden“, wenn iOS die App nicht richtig aktualisiert und immer noch eine IP aus einem früheren WLAN-Netzwerk verwendet.
"Auf allen Schnittstellen freigeben" setzt die öffentliche IP auf 0.0.0.0, was bedeutet, dass alle auf allen Geräten, mit denen Sie verbunden sind, kann Ihr Server angezeigt werden. Praktisch auf Desktops mit mehr als einer Verbindung, aber seien Sie vorsichtig, wenn Sie es an öffentlichen Orten verwenden.
„Freigabe starten“ startet den Server und öffnet die Homepage, die Sie verwalten können. Wenn Sie erneut darauf klicken, wird der Server gestoppt und Ihre Dateien bleiben sicher.
„Letzte Einstellungen laden“ und „Aktuelle Einstellungen speichern“ tun genau das, was sie sagen. Ihre Einstellungen werden in Documents/paferafileserver.cfg gespeichert, genau wie bei der Rust-Konsolenversion.
Die verschiedenen Kennwortoptionen dienen dazu, verschiedenen Personen unterschiedliche Zugriffsebenen zu erteilen.
Normalerweise kann jeder Ihre Dateien sehen, indem er sich einfach mit Ihrem Server verbindet. Wenn Sie jedoch darunter „Private Dateien aktivieren“ aktivieren, kann niemand ohne das Lesekennwort Ihre Dateien sehen.
Das Schreibkennwort wird zum Hochladen, Verschieben, Kopieren oder Löschen von Dateien verwendet. Ohne dieses Kennwort kann niemand anderes etwas mit Ihrem System machen, außer Ihre Dateien anzuzeigen.
Das Shell-Passwort ist in der mobilen App nutzlos, aber auf Desktop-Betriebssystemen und Termux auf Android sehr nützlich. Es ermöglicht Ihnen, beliebige Systembefehle auszuführen, was es sehr mächtig und gleichzeitig sehr gefährlich macht. Diese Funktion ist standardmäßig deaktiviert und Sie müssen beide ein Shell-Passwort eingeben Und Aktivieren Sie unten „Shell-Befehle aktivieren“, um es zu verwenden.
Mit den verschiedenen Aktivierungs- und Deaktivierungsoptionen können Sie auswählen, was andere Personen mit Ihrem System tun können sogar wenn Sie haben bereits das richtige Passwort. Diese überschreiben alle anderen Optionen. Wenn Sie also das Kopieren von Dateien deaktivieren, kann niemand – nicht einmal Sie selbst – Dateien kopieren.
Die spezielle Option „SSH-Keycheck deaktivieren“ ist für Leute wie mich gedacht, die ständig unterwegs sind, während sie Dateien zwischen verschiedenen Geräten hin und her synchronisieren. Normalerweise verlangt SSH eine Bestätigung, wenn eine Verbindung zu einem System hergestellt wird, dessen IP-Adresse sich geändert hat, selbst wenn die Identität dieses Systems bereits bekannt ist. Mit dieser Option können Sie Dateien in verschiedenen Netzwerken automatisch synchronisieren, ohne zur Bestätigung der SSH-Verbindungen in die Konsole wechseln zu müssen. Verwenden Sie diese Option mit Vorsicht, wenn Sie sich in Netzwerken befinden, die Sie nicht selbst kontrollieren.
Anders als beim Ausführen in Termux oder einer Desktopumgebung haben die iOS- und Android-Apps keinen Zugriff auf eine Shell, rsync, ImageMagick oder FFMpeg, daher sind alle erweiterten Synchronisierungs- und Transcodierungsfunktionen deaktiviert.
Da mobile Betriebssysteme Hintergrund-Apps jederzeit beenden können, werden auch zeitgesteuerte automatische Aufgaben deaktiviert.
Für all diese Aspekte gibt es mögliche Workarounds, aber die Zeit, die für die Integration dieser Funktionen benötigt wird, übersteigt derzeit meine Vorstellungen. Wenn jemand daran interessiert ist, mich für das Hinzufügen dieser Funktionen zu bezahlen, werden wir sehen, was passiert. 😁
Wie bei allen meinen Projekten wird der Quellcode auf Codeberg gehostet und kann hier zu finden .
Für vorkompilierte Binärdateien können Sie Durchsuchen Sie hier das Release-Verzeichnis ...
Oder klicken Sie einfach auf die folgenden Links:
Aufgrund der Signaturanforderungen von Apple müssen iOS- und OSX-Benutzer warten, bis die App im App Store verfügbar ist, oder den Quellcode herunterladen und eine eigene Version für Ihre Geräte kompilieren.
Da es sich um eine neue Version handelt, bin ich sicher, dass es viele Fehler und seltsames Verhalten auf verschiedenen Systemen geben wird. Wenn Sie diese App für mich als Betatester testen möchten, senden Sie mir bitte eine E-Mail mit Ihrem Gerät und der Betriebssystemversion und ich werde Sie auf TestFlight einrichten.
Die Verteilung einer Flutter-App ist tatsächlich viel komplizierter als die Rust-Version, bei der ich nur eine einzige ausführbare Datei hochlade und die ganze Sache erledigt ist. Bitte haben Sie also Verständnis, wenn Apple drei Wochen braucht, um meine App zu prüfen und sie im iOS App Store zuzulassen. Die Dinge sollten viel einfacher sein, wenn Apple gemäß der EU-Verordnung Apps von Drittanbietern zulassen muss.
Wie immer hoffe ich, dass ihr diese App nützlich findet, und wenn ihr sie für eure eigenen Zwecke anpassen wollt, stehe ich euch jederzeit als technischer Berater zur Verfügung. Viel Spaß!
Über den Autor |
|
![]() |
Jim programmiert, seit er in den 90er Jahren einen IBM PS/2 bekam. Bis heute schreibt er HTML und SQL lieber von Hand und legt bei seiner Arbeit Wert auf Effizienz und Korrektheit. |