Vil du have en hurtig introduktion? Se bare videoen ovenfor!
Sidste år udgav jeg et hjælpeprogram kaldet Pafera filserver . Det er en konsol-app skrevet i Rust, der kører en webbaseret filhåndtering til dine enheder, hvilket tillader nem fildeling til alt, der har en webbrowser med en praktisk diasshow-funktion til at vise dine billeder og shiba-ikoner frem. Det betyder, at du kan tage til fest og lade 200 venner alle gennemse dine seneste feriebilleder på deres egne telefoner, i deres eget tempo og i deres eget tempo.
Senere, da forskellige forslag og brugsmønstre kom ind fra venner og tilfældige internetfremmede, begyndte jeg at tilføje flere og flere funktioner. Det er nu i stand til at rsynkronisere hele mappetræer, omkode mediefiler, åbne filer med native operativsystemapps og automatisk synkronisere filer på tværs af dine enheder.
Men som en konsolapp var der altid et stort problem, der forhindrede det i at være en universel løsning til alle dine enheder:
Konsol-apps kan ikke køre på iOS, hvilket betyder, at du ikke kunne køre Pafera-filserveren på iPhones eller iPads...
Indtil nu.
Jeg havde lidt fritid i juleferien, mens Montenegro fejrede højtiden, så jeg eksperimenterede med at skrive en ledsager-app til flere platforme i Flutter/Dart, der ville give dig mulighed for nemt at gennemse servere fra din telefon. På den måde kunne mine mindre tech-tilbøjelige venner bare trykke på to knapper og oprette forbindelse til mine servere.
Undervejs fandt jeg ud af, at du faktisk kunne bruge Dart til at køre din egen webserver på iOS-enheder, og jeg tænkte...
Hej! Hvorfor implementerer jeg ikke bare filserveren i Dart i stedet for!
Så to uger senere er appen her.
Nu er ydeevnen frygtelig langsom sammenlignet med Rust-versionen. Rust-serveren kan betjene omkring 40.000 anmodninger i sekundet...
Mens Dart-versionen kun kan tjene omkring 400....
Men det vigtige er, at det virker...
og den installeres på iPhones!
På grund af en fejl i PDFx-biblioteket med nyere versioner af Flutter, har jeg været nødt til at stoppe med at bruge smukke ikoner til alle knapperne, da de viste sig som grimme sorte streger.
Den grundlæggende operation forbliver dog den samme.
Når alle er tilsluttet det samme WiFi-netværk eller din telefons hotspot, skal du blot klikke på appikonet, vælge den mappe, du vil dele, og trykke på "Start server".
Klik derefter på QR-kodeknappen, lad dine venner scanne den, og så kan de med glæde gennemse din mappe på deres telefoner, endda streame film fra din telefon direkte til deres telefoner.
Hvis din ven bruger en bærbar eller stationær computer, er det heller ikke noget problem. Indtast blot den URL, der vises over QR-koden på deres enhed, og de kan gøre nøjagtig det samme.
Hvis du ikke kører på iOS eller Android, er det heller ikke noget problem. Flutter Apps fungerer fint på OSX, Windows og Linux, så du får den samme funktionalitet og endnu mere, hvis du installerer rsync, FFMpeg og ImageMagick på dit system, så appen kan bruge det.
Der er en del avancerede funktioner udover simpel fildeling, så jeg vil give et hurtigt overblik her.
Værtsnavn er det, der vises til andre enheder, når de klikker på "Søg efter andre servere". Du kan bruge den til hurtigt at skelne en enhed fra en anden, hvis du deler et par enheder på samme tid.
Mappe er den filsystemmappe, som du faktisk deler. Du kan klikke på "Brug dokumentmappe" som standard i Dokumenter/delt, eller du kan klikke på "Vælg mappe" for at vælge en anden mappe. Du skal muligvis også klikke på "Brug dokumentmappe" hvis iOS ikke opdaterer appens indstillinger korrekt, når den genoptager fra dvale.
Brug aktuel IP registrerer automatisk din enheds aktuelle WiFi IP. Som med "Brug dokumenter-mappen" brug den, hvis iOS ikke opdaterer appen korrekt, og den stadig bruger en IP fra et tidligere WiFi-netværk.
"Del på alle grænseflader" indstiller den offentlige IP til 0.0.0.0, hvilket betyder, at alle på alt, hvad du har forbindelse til, vil kunne se din server. Praktisk på stationære computere med mere end én forbindelse, men vær forsigtig med at bruge den på offentlige steder.
"Begynd at dele" vil køre serveren og åbne hjemmesiden, som du kan administrere. Hvis du klikker på det igen, stopper serveren og dine filer beskyttes.
"Indlæs sidste indstillinger" og "Gem aktuelle indstillinger" gør præcis, hvad de siger. Dine indstillinger vil blive gemt i Documents/paferafileserver.cfg ligesom konsollen Rust-versionen.
De forskellige adgangskodemuligheder er der for at give forskellige personer forskellige adgangsniveauer.
Normalt kan alle se dine filer bare ved at oprette forbindelse til din server, men hvis du markerer "Aktiver private filer" under disse, så vil ingen kunne se dine filer uden læseadgangskoden.
Skriveadgangskoden bruges til at uploade, flytte, kopiere eller slette filer. Uden dette kan ingen andre gøre noget ved dit system udover at se dine filer.
Shell-adgangskoden er ubrugelig på mobilappen, men er meget nyttig på desktop-operativsystemer og Termux på Android. Det lader dig køre vilkårlige systemkommandoer, som gør det meget kraftfuldt og meget farligt på samme tid. Denne funktion er deaktiveret som standard, og I skal begge indtaste en shell-adgangskode og marker "Aktiver skalkommandoer" nedenfor for at bruge det.
De forskellige aktiverings- og deaktiveringsmuligheder lader dig vælge, hvad andre mennesker kan gøre ved dit system selv når de har allerede den rigtige adgangskode. Disse tilsidesætter alle andre muligheder, så hvis du deaktiverer kopiering af filer, vil ingen - ikke engang du selv - være i stand til at kopiere filer.
Den særlige mulighed "Deaktiver SSH Keycheck" er for folk som mig, der konstant strejfer rundt, mens de synkroniserer filer frem og tilbage mellem forskellige enheder. Normalt vil SSH bede om bekræftelse, når der oprettes forbindelse til et system, hvis IP-adresse er ændret, selvom systemets identitet allerede er kendt. Denne mulighed vil give dig mulighed for automatisk at synkronisere filer på forskellige netværk uden at gå ned i konsollen for at bekræfte SSH-forbindelser. Brug den med forsigtighed, når du er på netværk, som du ikke selv kontrollerer.
I modsætning til at køre i Termux eller et skrivebordsmiljø, har iOS- og Android-apps ikke adgang til en shell, rsync, ImageMagick eller FFMpeg, så alle de avancerede synkroniserings- og omkodningsfunktioner er deaktiveret.
Fordi mobile operativsystemer kan dræbe baggrundsapps til enhver tid, er tidsbestemte automatiske opgaver også deaktiveret.
Der er mulige løsninger for alle disse aspekter, men den tid, der kræves til at integrere disse funktioner, er uden for min hensigt i øjeblikket. Hvis nogen er interesseret i at betale mig for at tilføje dem, så ser vi, hvad der sker. 😁
Som med alle mine projekter er kildekoden hostet på Codeberg og kan være det findes her .
For prækompilerede binære filer kan du evt gennemse udgivelseskataloget her ...
Eller klik blot på nedenstående links:
På grund af Apples signeringskrav skal iOS- og OSX-brugere vente på, at appen er tilgængelig i App Store, eller downloade kildekoden og kompilere din egen version til dine enheder.
Da dette er en ny udgivelse, er jeg sikker på, at der vil være masser af fejl og mærkelig adfærd på forskellige systemer. Hvis du gerne vil betateste denne app for mig, bedes du sende mig en e-mail med din enheds- og operativsystemversion, og jeg vil konfigurere dig på TestFlight.
At distribuere en Flutter-app er faktisk meget mere kompliceret end Rust-versionen, hvor jeg bare uploader en enkelt eksekverbar og er færdig med det hele, så vær venligst forstående, når det tager tre uger for Apple at tjekke min app og tillade den i iOS App Store. Tingene burde være meget nemmere, når Apple er forpligtet til at tillade tredjepartsapps i henhold til EU-afgørelsen.
Som altid håber jeg, at I finder denne app nyttig, og hvis I ønsker at tilpasse den til jeres egne formål, er jeg altid tilgængelig som teknisk konsulent. God fornøjelse!
Om forfatteren |
|
![]() |
Jim har programmeret, siden han fik en IBM PS/2 tilbage i 90'erne. Den dag i dag foretrækker han stadig at skrive HTML og SQL i hånden og fokuserer på effektivitet og korrekthed i sit arbejde. |