Skal det være så svært at dele filer med en ven?

Vi præsenterer Pafera File Server, den lille Android-server, der voksede til en fuldgyldig filhåndtering, diasshowfremviser og medieserver
2023-04-17 22:41:37
👁️ 840
💬 0

Indhold

  1. Introduktion
  2. Kandidaterne
  3. Løsningen
  4. Hvordan fungerer det så?
  5. Installation af serveren
  6. Gennemsøgning af filer
  7. System-menuen
  8. Menuen Filer
  9. Brug af diasshowet
  10. Konfiguration
  11. Fremtidige planer

Indledning

Wauw! Det er virkelig sejt. Kan du dele det med mig?

Jeg er en teknisk fyr, som hele tiden har nye gadgets og apps, og jeg kan ikke huske, hvor mange gange en version af ovenstående sætning er blevet sagt til mig til fester, møder eller endda, mens jeg ventede på metroen.

Men jeg kan helt sikkert huske, hvor mange gange vi endte med følgende udveksling:

Mig Helt sikkert! Hvad bruger du?
Ven Nå, men jeg har app A.
Mig Hmm... Det har jeg ikke. Har du app B?
Ven Nej, det har jeg heller ikke. Har du metode C?
Mig Ja, okay. Lad os prøve det. Hmm... der er ikke forbindelse. Hvad med at bruge metode D?
Ven Det virker heller ikke.

At dele en fil har været en almindelig opgave, siden computere blev en ting tilbage i den mørke middelalder. Først kiggede ivrige programmører gladeligt på hinandens udskrifter, så blev det til kopiering af hulkort. Bagefter blev magnetiske diske den nye hotte trend, og så gik teknologien over til optiske diske, flaskedrev og trådløse overførsler.

Men det ser ud til, at vi stadig er på et stadie, hvor vi efter 70 år ikke nemt kan dele søde shiba-videoer uden at springe over, hvor gærdet er lavest, downloade mærkelige apps eller ty til langsomme trådløse overførsler.

Hvad med at prøve noget andet?

Kandidaterne

Men Jim, jeg deler filer hver dag uden problemer, siger du?

Lad os se på de almindelige metoder, som folk bruger til at overføre filer.

Metode Mislykkes
1. AirDrop Kan du AirDroppe til en Android-telefon? Så er det i orden!
2. Andel i nærheden Kan man NearBy Share filer til en iPhone? Hmm...
3. AirDroid, SHAREit, Resilio Sync, Send Anywhere osv... Vil du bede nogen ved et busstoppested om hurtigt at installere den samme app som dig, bare så de kan modtage en fil? Godt så!
4. Chat-program Mange chatprogrammer begrænser, hvilke typer filer du kan sende, komprimerer dine HD-videoer igen, og du skal vente på, at filen langsomt uploades og derefter downloades til din vens enhed. Vi løber også ind i problemet med metode 3, hvor du skal have det samme chatprogram installeret for at kunne overføre filer.
5. Bluetooth Selv med Bluetooth 5 er overførsel af en 700MiB HD-video som at se maling tørre i fugtigt Florida-vejr.
6. E-mail De fleste e-mailtjenester begrænser størrelsen på vedhæftede filer, og det er endnu langsommere end at overføre via chatprogrammer. Jeg har dog altid fundet historierne om iPhone-brugere, der sender filer til sig selv, bare så de kan printe et dokument, ret morsomme ;)
7. DropBox, OneDrive osv... Løber ind i de samme upload/download-problemer som metode 3 og 4.
8. USB-nøgle Faktisk ret gørbart og hurtigt, men du skal huske at have en med dig og også have den rigtige adapter til at forbinde med din vens enhed. Jeg selv har en i lommen hele tiden, men det er ret tilfældigt, om enheden til den, du deler med, vil støtte dit drev.
9. Få din ven til at tage et billede/video af din telefonskærm med sit telefonkamera! 100% succesrate ved overførsel af data af dårlig kvalitet!
Hvad sker der, når deling ikke virker?

Det ser ikke godt ud for os i øjeblikket, gør det?

Løsningen

Så kort sagt, for at være en effektiv, universel løsning har vi brug for noget, der

  1. Kan bruges på alle enheder
  2. Understøtter direkte WiFi-overførsler uden at uploade til en server og tilbage igen
  3. Vil ikke omkomprimere vores 4K-video til 480p.
  4. Virker, hvor vi ikke engang kan få et telefonsignal

Hvis der nu bare var noget, der var forudinstalleret på alle enheder, som er designet til at få adgang til andre computere med en almindeligt accepteret protokol, og som har mulighed for at uploade/downloade filer ...

Noget...

Som...

a...

webbrowser!

Understøtter Windows CE HTML 5? Fantastisk!

Hvordan fungerer det så?

Så hvordan fungerer en webbrowser til at overføre filer?

Der er tre grundlæggende trin.

  1. Få begge enheder til at oprette forbindelse til det samme trådløse netværk/hotspot
  2. Lad din ven skrive adressen på din enhed i sin browser
  3. Gennemse, se, download og upload så meget, du vil
Selv i 2023 er det at bruge din telefons eget hotspot stadig den hurtigste måde at overføre filer på, især hvis du er på vandretur i bjergene!

Fordelene ved denne tilgang er

  1. Fungerer på alle enheder, der har en webbrowser (dvs. stort set alt i dag)
  2. Du behøver ikke at klikke på hver enkelt fil, trykke på send og vente på, at din ven accepterer. Din ven kan se, hvad han eller hun vil have, og selv downloade filer.
  3. Du kan få en hel gruppe mennesker til at surfe på samme tid i stedet for en ad gangen.

Denne server kan selvfølgelig ikke køre på iPhones og iPads, fordi Apple ikke kun begrænser adgangen til filsystemet på iOS-enheder, men du kan heller ikke køre Linux-programmer, medmindre du er rooted med Cydia.

Heldigvis behøver du kun *en* enhed til at køre serveren, så dine Apple-venner kan stadig oprette forbindelse til din Android-telefon uden problemer og stadig downloade og uploade filer. Desuden er de allerede vant til ikke at kunne bruge andre systemer, da AirDrop kun fungerer til Apple-enheder ;)

Installation af serveren

Af hensyn til hastighed og effektivitet er Pafera File Server en Linux/Windows-app skrevet i Rust, så du kan desværre ikke bare downloade den fra app store. Jeg laver måske en app store-version i Kotlin senere, hvis nogen er villige til at betale mig for det, men medmindre du er Jerry Maguire, må du nøjes med Rust-versionen indtil videre.

Heldigvis har mange open source-programmører, der er meget mere intelligente end mig, slået sig sammen om at lave apps, der lader dig køre Linux-programmer på din Android-telefon med varierende succes.

Derfor er alt, hvad du skal gøre, at installere Termux på din telefon, kopiere og indsætte to kommandoer og trykke på Enter et par gange. Det er ikke en installation med et enkelt klik, men det er heller ikke SpaceX, der bygger StarShip, og du får adgang til et helt andet økosystem af seje programmer, som du kan lege med.

Det er din hjerne på stoffer ... øh ... telefon på Termux.

Installationen foregår på følgende måde:

  1. Download Termux-appen fra F-Droid eller fra Codeberg
  2. Start appen
  3. Kopier og indsæt følgende i terminalen, og tryk på enter.

    curl -O https://pafera.com/installfileserver.sh
    
  4. Kopier og indsæt endnu en kommando i terminalen, og tryk på enter.

    bash installfileserver.sh
    
  5. Tryk på Enter på tastaturet, hvis du bliver bedt om noget under opgraderingen af pakken.
  6. Få din ven til at skrive den URL, der vises på skærmen.

    Find URL'en blandt displayet

Når du har installeret serveren, kan du til enhver tid afslutte den ved blot at afslutte Termux-sessionen.

Og hvis du vil starte serveren op igen med en adgangskode, der tillader ændringer, skal du skrive

./paferafileserver password=yourpasswordhere

i Termux, eller bare tryk på pil op for at vælge dine tidligere indtastede kommandoer.

Det er ikke helt så nemt som bare at trække dine notifikationer ned og trykke på "NearBy Share", men du kommer heller ikke til at køre serveren ved et uheld, og du får meget mere funktionalitet for ulejligheden.

Hvis du tilfældigvis er Rust-programmør, er installationen meget lettere for dig.

Alt hvad du skal gøre er at skrive

cargo install paferafileserver

Vent på, at lasten gør sine ting, og voila! Du er færdig!

Hvis du vil køre Pafera File Server på Windows eller Linux, findes der forudbyggede binære filer nedenfor i 7-Zip arkiver.

  1. Linux (amd64)
  2. Termux på Android 7+
  3. Linux (armv7h til Debian på Userland - Android 5 og 6)
  4. Windows standalone exe
  5. Windows komplet (inklusive FFMpeg og ImageMagick)

Gennemsøgning af filer

Når det lykkes din ven at skrive URL'en til din server i sin browser, bør hans eller hendes telefon se sådan her ud.

Hjemmeside for Pafera File Server

Hvis du ikke kan se nogen filer, skal du sørge for, at din ven har aktiveret JavaScript, da vi bruger scripting til at sortere og vise filer.

For at give en hurtig indføring er der øverst til venstre en knap til systemmenuen, en knap til de seneste filer og en knap til startmappen.

Klikker på filer

Hvis du klikker på en miniature af et billede, starter et diasshow, og hvis du klikker på filnavnet, downloades filen.

Hvis du klikker på menuknappen for en fil, åbnes handlingsmenuen for den pågældende fil, og hvis du klikker på firkanten under den, vælges filen.

For hurtigt at vælge en række filer skal du klikke på valgknappen for den første fil, derefter klikke på menuknappen for den sidste fil og vælge "Select to Here".

System-menuen

Popup-vinduet til systemmenuen

Search og Deep Search (genvejstasterne t og f) giver begge mulighed for at skrive et par bogstaver og se alle de filer, der indeholder disse bogstaver.

Forskellen er, at normal søgning kun ser på filerne i den aktuelle mappe, mens dyb søgning også ser på alle mapper i denne mappe.

Slide Show og Deep Slide Show (genvejstasterne z og x) følger samme logik. Vælg den, du vil have, baseret på, om du vil inkludere billeder i alle mapper i denne mappe eller ej.

Toggle View (genvejstast v) skifter fra den normale detaljevisning til en ikonvisning af alle billeder og videoer i denne mappe.

Sort (genvejstast s) giver dig mulighed for at vælge, hvordan filerne skal sorteres. Du kan vælge mellem at bruge filens navn, størrelse, dato og tidsforskel til at sortere filerne. Personligt foretrækker jeg tidsforskellen, da "for fem minutter siden" er meget mere nyttigt for mig end "14:55".

Visningen Seneste filer (genvejstast e) viser dig de senest ændrede 512 filer i den aktuelle mappe og alle mapper i denne. Vær forsigtig med at bruge denne visning til din hjemmemappe, da det kan tage et stykke tid at tjekke alle filerne, hvis du har hundredtusindvis af små filer, der skal inspiceres.

Indstil adgangskode (genvejstast w) lader din ven skrive adgangskoden for at kunne ændre, uploade og slette filer. Uden denne adgangskode kan ingen ændre noget på din telefon, så hold den sikker. Du kan indstille den enten på kommandolinjen ved at skrive password=yaddayaddayadda eller i paferafileserver.cfg ved hjælp af formatet

{
  "password":"yaddayaddayadda"
}

Ny mappe (genvejstast o) vil bede dig om navnet på den nye mappe, der skal oprettes i den aktuelle mappe.

Vis skjulte filer (genvejstast i) skifter visning af filer og mapper, der begynder med punktum, som er det, Unix bruger til at angive, at disse filer normalt ikke skal være synlige for brugeren.

Hvis du slår One Click Download (genvejstast k) til, kan du straks downloade en fil ved at klikke på den i stedet for at få den vist i din browser.

Show Hotkeys (Hotkey h) viser, hvilke taster der kan bruges i både mappevisning og diasshowvisning.

Zoom ind (genvejstast .) og Zoom ud (genvejstast ,) ændrer størrelsen på alt på skærmen. Brug dem til at tilpasse din side, hvis dit systems standardstørrelser ikke passer dig.

Menuen Filer

Popup-menuen Filer

Med Select to Here kan du vælge alle filer mellem dem, du tidligere har valgt, og denne gang. Det er ret praktisk som en erstatning for at undgå at erstatte højreklikmenuen til kopiering af links på både desktop og mobil.

Vælg alle (genvejstast a) og Vælg ingen (genvejstast n) er selvforklarende. Bare vær forsigtig, når du bruger dem til at slette alle filer, som du virkelig ønsker at slette alle filer.

Send (genvejstast g) åbner et scanningsvindue, hvor du kan se alle de andre enheder, der kører Pafera File Server på dit netværk.

Sende filer til en anden server

Bemærk, at alle enheder skal være på det samme subnet og køre på den samme port, så hvis du er på 192.168.0.100, og den enhed, du prøver at sende til, er på 192.168.1.100, så vil scanneren ikke registrere den anden enhed. Du kan selvfølgelig altid bare logge ind på enhedens server og uploade filer ved hjælp af din browser i stedet.

For nemheds skyld samles alle filer, som du sender til en anden enhed, i en mappe, der hedder "Received" under serverens rod. Det kan være, jeg ændrer det senere, men lige nu er det praktisk, at alle nye filer vises i den samme mappe, så man senere kan flytte dem til det rette sted.

Den nye fil i mappen Received

Download (genvejstast l), Omdøb (genvejstast r), Flyt (genvejstast m), Kopier (genvejstast c), Slet (genvejstast d) og Permanent sletning (p) kan alle arbejde på flere filer på samme tid, bortset fra download i mobile browsere, hvor man kun kan downloade én fil ad gangen. Bare vær forsigtig, for Permanent Delete betyder virkelig Permanent Slet dine filer. Gem altid en kopi af dine vigtige filer på en anden enhed, før du trykker på sletteknappen.

Undelete (genvejstast u) bruges kun til filer, som er blevet slettet én gang, og som derfor har filtypen ".deleted". Den kan ikke bringe permanent slettede filer tilbage. De længes ikke. De er gået bort. Disse filer er ikke mere. De er tidligere filer.

Ved at bruge diasshowet

Diasshowets brugerflade. Alt i bunden er klikbart.

En af de funktioner, som folk altid efterspørger i en filbrowser, er et godt diasshow. Når du har 6.000 billeder af din søn på din telefon, som du kan vise frem til tilfældige fremmede, er det ikke svært at forstå hvorfor ;) De fleste SMB-klienter har ikke billedforhåndsvisning eller diasshow, så det er ret frustrerende at prøve at finde et bestemt billede ved hjælp af iPhone Files-appen.

Slide Show-funktionen i Pafera File Server kan aktiveres på et par forskellige måder:

  1. Klik på miniaturebilledet af et billede.
  2. Vælg "Slide Show" fra systemmenuen.
  3. Vælg "Deep Slide Show" fra systemmenuen.
  4. Lav en søgning eller dybdesøgning for at vælge de filer, du vil vise frem, og Klik på miniaturebilledet af det første billede.

Uanset hvordan du starter diasshowet, vil der være en sletteknap i toppen med navnet på det aktuelle billede og en værktøjslinje i bunden med funktionerne randomisering, rotation, exit, frem og tilbage.

Hvis du vil gå til et bestemt billednummer, skal du bare klikke på billedpositionen på værktøjslinjen, skrive det nummer, du vil have, og gå videre derfra.

At vælge et nummer at gå til

Diasshowet understøtter swipe-bevægelser, som faktisk er min foretrukne metode til at navigere på telefonen. Alt, hvad du skal gøre, er at stryge tommelfingeren lidt til venstre for at gå til det forrige billede, til højre for at gå til det næste billede, op for at slette det aktuelle billede eller ned for at afslutte diasshowet.

Hvis du sidder på en bærbar computer eller har et bluetooth-tastatur koblet til din telefon, bliver det dog endnu nemmere at bruge diasshowet.

Venstre pil Forrige billede
Højre pil Næste billede
Pil op Slet billede
Pil ned/Escape Afslut diasshowet
r Tilfældigt billede
g Gå til billednummer
q Drej 90 grader mod uret
e Drej 90 grader med uret

Konfiguration

Pafera File Server kan konfigureres fra en JSON-fil med navnet paferafileserver.cfg i samme mappe eller fra kommandolinjeargumenter i formen key=value. Hvis begge dele er angivet, vil kommandolinjeargumenterne tilsidesætte indstillingerne i konfigurationsfilen.

En almindelig kommandolinje er

paferafileserver [hostname=localhost] [serverroot=/home/jim] [password=password] [ip=0.0.0.0] [port=9999]

Så hvis du vil vise Jims billedkatalog til alle besøgende på port 5000, skal du bruge

paferafileserver serverroot=/home/jim/Pictures port=5000

Hvis du ikke angiver serverroot, vil det som standard være dit hjemmekatalog.

Hvis du ikke angiver ip og port, vil den som standard være 0.0.0.0:9999.

Derudover kan følgende muligheder indtastes på kommandolinjen for at deaktivere visse funktioner, selv om brugeren har den rigtige adgangskode.

disabledelete
disablerename
disablemove
disablecopy
disablenewfolder
disabledelete
disablepermanentdelete
disablesend
disableupload

Alle kommandolinjeargumenter kan også angives i en JSON-fil kaldet paferafileserver.cfg i den aktuelle mappe, f.eks.

{
  "hostname":               "JimsLaptop",
  "password":               "SecretPassword12345",
  "disabledelete":          1,
  "disablepermanentdelete": 1
}

Du kan vælge den metode, der fungerer bedst for dig.

I Windows er det ofte lettest at oprette en genvej til den eksekverbare fil og angive dine argumenter i genvejen.

For Termux på Android er den nemmeste måde at starte den eksekverbare fil på at installere Termux Widget-appen fra F-Droid og konfigurere din kommandolinje inde i widgettens script.

Fremtidige planer

Yderligere ændringer er ikke planlagt på nuværende tidspunkt, da dette bare var et sjovt introduktionsprojekt for at lege med Rust, men hvis en anden skulle

  1. Skriv Kotlin/Swift-versioner til at smide op på app-butikkerne
  2. Oversæt denne app til flere sprog
  3. Opret forskellige CSS-temaer
  4. Implementer en rsync-lignende algoritme til backup og gendannelse
  5. Eller noget andet, du kan komme i tanke om

Jeg vil meget gerne have tilføjelser til dette enkle projekt.

Som altid håber jeg, at I finder denne app nyttig, og hvis I ønsker at tilpasse den til jeres egne formål, står jeg altid til rådighed 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.