Må det være så vanskelig å dele filer med en venn?

Vi introduserer Pafera File Server, den lille Android-serveren som vokste til en fullverdig filbehandler, lysbildefremviser og medieserver
2023-04-17 22:41:37
👁️ 841
💬 0

Innhold

  1. Innledning
  2. Kandidatene
  3. Løsningen
  4. Så hvordan fungerer dette?
  5. Installere serveren
  6. Bla gjennom filer
  7. Systemmenyen
  8. Fil-menyen
  9. Bruke lysbildefremvisningen
  10. Konfigurasjon
  11. Fremtidige planer

Introduksjon

Jøss! Jøss! Det er veldig kult. Kan du dele det med meg?

Jeg er en teknisk fyr som stadig har nye dingser og apper, og jeg kan ikke huske hvor mange ganger jeg har hørt en eller annen versjon av setningen ovenfor bli sagt til meg på fester, møter eller til og med mens jeg har ventet på T-banen.

Men jeg kan definitivt huske hvor mange ganger vi endte opp med følgende ordveksling:

meg Ja visst! Hva bruker du?
Venn Vel, jeg har app A.
meg Hmm... Jeg har ikke det. Har du app B?
Venn Nei, jeg har ikke det heller. Har du metode C?
meg Ok. Vi prøver det. La oss prøve det. Den kobler ikke til. Hva om vi bruker metode D?
Venn Det fungerer heller ikke.

Å dele en fil har vært en vanlig oppgave siden datamaskiner ble en ting tilbake i den mørke middelalderen. Først så ivrige programmerere gladelig på hverandres utskrifter, så ble det kopiering av hullkort. Deretter ble magnetiske disker den nye trenden, og så gikk teknologien over til optiske disker, flaskenheter og trådløse overføringer.

Det virker imidlertid som om vi fortsatt er på et stadium der vi etter 70 år ikke enkelt kan dele søte shiba-videoer uten å måtte hoppe gjennom bøyler, laste ned merkelige apper eller ty til trege trådløse overføringer.

Hva om vi prøver noe annet?

Kandidatene

Men Jim, jeg deler filer hver dag uten problemer, sier du?

La oss se på de vanligste metodene som folk bruker for å overføre filer.

Metode Mislykkes
1. AirDrop Kan du AirDroppe til en Android-telefon? Greit, da!
2. NearBy Share Kan du NearBy Share filer til en iPhone? Hmm...
3. AirDroid, SHAREit, Resilio Sync, Send Anywhere, etc... Skal du be noen på et busstopp om å installere den samme appen som deg bare for at de skal kunne motta en fil? Greit, da!
4. Chat-program Mange chat-programmer begrenser hvilke typer filer du kan sende, komprimerer HD-videoene dine på nytt, og du må vente på at filen sakte skal lastes opp og deretter lastes ned til vennens enhet. Vi støter også på problemet med metode 3, der du må ha det samme chatteprogrammet installert for å kunne overføre filer.
5. Bluetooth Selv med Bluetooth 5 er overføring av en 700MiB HD-video som å se maling tørke i fuktig vær i Florida.
6. E-post De fleste e-posttjenester begrenser størrelsen på vedlegg, og det går enda saktere enn å overføre via chat-programmer. Jeg har imidlertid alltid funnet historiene om iPhone-brukere som sender filer til seg selv bare for å kunne skrive ut et dokument, ganske morsomme ;)
7. DropBox, OneDrive osv. Har de samme opplastings-/nedlastingsproblemene som metode 3 og 4.
8. USB-minnepinne Faktisk ganske overkommelig og raskt, men du må huske å ha med deg én og også ha den rette adapteren for å koble til vennens enhet. Jeg selv har en i lommene mine hele tiden, men det er ganske tilfeldig om enheten til personen du deler med vil støtte enheten din.
9. Få vennen din til å ta et bilde/video av telefonskjermen din med mobilkameraet sitt! 100 % suksessrate ved overføring av data av dårlig kvalitet!
Hva skjer når deling ikke fungerer?

Det ser ikke bra ut for oss for øyeblikket, gjør det vel?

Løsningen

Kort sagt, for å være en effektiv, universell løsning trenger vi noe som

  1. Kan brukes på alle enheter
  2. Støtter direkte WiFi-overføringer uten å laste opp til en server og tilbake
  3. Vil ikke omkomprimere 4K-videoen vår til 480p.
  4. Fungerer der vi ikke engang kan få telefonsignal

Hvis det bare fantes noe som var forhåndsinstallert på alle enheter, som er utformet for å få tilgang til andre datamaskiner med en allment akseptert protokoll, og som har muligheten til å laste opp og ned filer...

Noe...

...som...

a...

nettleser!

Windows CE støtter HTML 5? Groovy!

Så hvordan fungerer dette?

Så hvordan fungerer en nettleser for å overføre filer?

Det er tre grunnleggende trinn.

  1. Koble begge enhetene til samme trådløse nettverk/hotspot
  2. La vennen din skrive inn adressen til enheten din i nettleseren sin
  3. Bla gjennom, se, last ned og last opp så mye du vil
Selv i 2023 er det å bruke telefonens eget hotspot fortsatt den raskeste måten å overføre filer på, spesielt hvis du er på fjelltur!

Fordelene med denne tilnærmingen er

  1. Fungerer på alle enheter som har en nettleser (dvs. stort sett alt i dag)
  2. Du trenger ikke å klikke på hver enkelt fil, trykke på send og vente på at vennen din skal godta. Vennen din kan se hva han eller hun vil ha, og laste ned filene selv.
  3. Du kan ha en hel gruppe mennesker som surfer samtidig i stedet for én og én.

Denne serveren vil selvfølgelig ikke kjøre på iPhones og iPads, fordi Apple ikke bare begrenser tilgangen til filsystemet på iOS-enheter, men du kan heller ikke kjøre Linux-programmer med mindre du er rotfestet med Cydia.

Heldigvis trenger du bare *en* enhet for å kjøre serveren, så Apple-vennene dine kan fortsatt koble seg til Android-telefonen din uten problemer og fortsatt laste ned og laste opp filer. Dessuten er de allerede vant til å ikke kunne bruke andre systemer, siden AirDrop bare fungerer for Apple-enheter ;)

Installere serveren

For hastighetens og effektivitetens skyld er Pafera File Server en Linux/Windows-app skrevet i Rust, så du kan dessverre ikke bare laste den ned fra appbutikken. Jeg vil kanskje lage en app store-versjon i Kotlin senere hvis noen er villige til å betale meg for det, men med mindre du er Jerry Maguire, må du ta til takke med Rust-versjonen inntil videre.

Heldigvis har mange programmerere med åpen kildekode som er mye smartere enn meg, gått sammen om å lage apper som lar deg kjøre Linux-programmer på Android-telefonen din, med varierende suksess.

Alt du trenger å gjøre er derfor å installere Termux på telefonen, kopiere og lime inn to kommandoer, og trykke Enter et par ganger. Det er ikke en installasjon med ett klikk, men det er heller ikke SpaceX som bygger StarShip, og du får tilgang til et helt annet økosystem av kule programmer du kan leke med.

Dette er hjernen din på dop... telefonen på Termux.

Installasjonen foregår på følgende måte:

  1. Last ned Termux-appen fra F-Droid eller fra Codeberg
  2. Start appen
  3. Kopier og lim inn følgende i terminalen, og trykk på Enter.

    curl -O https://pafera.com/installfileserver.sh
    
  4. Kopier og lim inn én kommando til i terminalen, og trykk på Enter.

    bash installfileserver.sh
    
  5. Trykk på Enter på tastaturet hvis du blir bedt om å trykke på en melding under oppgraderingen av pakken.
  6. Be vennen din skrive inn nettadressen som vises på skjermen.

    Finne URL-adressen blant displayet

Når du har installert serveren, kan du når som helst avslutte den ved å gå ut av Termux-økten.

Og hvis du vil starte serveren opp igjen med et passord som tillater endringer, skriver du

./paferafileserver password=yourpasswordhere

i Termux, eller bare trykk på pil opp for å velge tidligere inntastede kommandoer.

Det er ikke fullt så enkelt som å bare trekke ned varslene og trykke på "NearBy Share", men du vil heller ikke kjøre serveren ved et uhell, og du får mye mer funksjonalitet for bryet.

Hvis du tilfeldigvis er Rust-programmerer, er installasjonen mye enklere for deg.

Alt du trenger å gjøre er å skrive

cargo install paferafileserver

Vent på at lasten gjør sin greie, og voila! Du'er ferdig!

Hvis du ønsker å kjøre Pafera File Server på Windows eller Linux, er forhåndsbygde binære filer tilgjengelige nedenfor i 7-Zip arkiver.

  1. Linux (amd64)
  2. Termux på Android 7+
  3. Linux (armv7h for Debian på Userland - Android 5 og 6)
  4. Windows frittstående exe
  5. Windows komplett (inkludert FFMpeg og ImageMagick)

Bla gjennom filer

Når vennen din har skrevet inn URL-adressen til serveren din i nettleseren sin, bør telefonen se slik ut.

Hjemmeside for Pafera File Server

Hvis du ikke ser noen filer, må du kontrollere at vennen din har aktivert JavaScript, ettersom vi bruker skript for sortering og visning av filer.

For å gi deg en rask innføring: Fra øverst til venstre finner du knappen for systemmenyen, knappen for nylige filer og knappen for startmappen.

Klikk på filer

Hvis du klikker på et miniatyrbilde, starter du en lysbildefremvisning, og hvis du klikker på filnavnet, lastes filen ned.

Hvis du klikker på menyknappen for en fil, åpnes handlingsmenyen for den aktuelle filen, og hvis du klikker på firkanten under den, velger du filen.

Hvis du raskt vil velge en rekke filer, klikker du på valgknappen for den første filen, deretter klikker du på menyknappen for den siste filen og velger "Velg til her".

Systemmenyen

Popup-vinduet for systemmenyen

Med Search og Deep Search (hurtigtastene t og f) kan du skrive inn et par bokstaver og se alle filene som inneholder disse bokstavene.

Forskjellen er at normalt søk bare ser på filene i den aktuelle mappen, mens Deep Search også ser i alle mappene i denne mappen.

Lysbildefremvisning og Dyp lysbildefremvisning (hurtigtastene z og x) følger samme logikk. Velg den du vil ha, basert på om du vil inkludere bilder i alle mapper i denne mappen eller ikke.

Veksle visning (hurtigtast v) skifter fra den vanlige detaljvisningen til en ikonvisning av alle bildene og videoene i denne mappen.

Sorter (hurtigtast s) lar deg velge hvordan filene skal sorteres. Du kan velge mellom å bruke filnavn, størrelse, dato og tidsforskjell for å sortere filene. Personlig foretrekker jeg tidsforskjell-visningen, ettersom "for fem minutter siden" er mye mer nyttig for meg enn "14:55".

Visningen Nylige filer (hurtigtast e) viser de 512 sist endrede filene i den aktuelle mappen og alle mappene i denne mappen. Vær forsiktig med å bruke denne visningen for hjemmemappen din, da det kan ta en stund å sjekke alle filene hvis du har hundretusener av små filer å inspisere.

Angi passord (hurtigtast w) lar vennen din skrive inn passordet for å kunne endre, laste opp og slette filer. Uten dette passordet kan ingen endre noe på telefonen din, så pass godt på det. Du kan angi det enten på kommandolinjen ved å skrive password=yaddayaddayadda eller i paferafileserver.cfg ved å bruke formatet

{
  "password":"yaddayaddayadda"
}

Ny mappe (hurtigtast o) vil be deg om navnet på den nye mappen som skal opprettes i den gjeldende mappen.

Vis skjulte filer (hurtigtast i) veksler mellom visning av filer og mapper som begynner med punktum, som er det Unix bruker for å indikere at disse filene normalt ikke skal være synlige for brukeren.

Hvis du slår på One Click Download (hurtigtast k), kan du laste ned en fil umiddelbart ved å klikke på den i stedet for å vise den i nettleseren.

Vis hurtigtaster (Hotkey h) viser hvilke taster som kan brukes i både mappevisning og lysbildevisning.

Zoom inn (hurtigtast .) og Zoom ut (hurtigtast ,) endrer størrelsen på alt på skjermen. Bruk disse til å tilpasse siden din hvis systemets standardstørrelser ikke passer deg.

Fil-menyen

Filmeny-popupen

Med Select to Here kan du velge alle filene mellom de du tidligere har valgt og denne gangen. Det er ganske praktisk som en erstatning for å unngå å erstatte høyreklikkmenyen for kopiering av lenker på både stasjonære og mobile enheter.

Velg alt (hurtigtast a) og Velg ingen (hurtigtast n) er selvforklarende. Bare vær forsiktig når du bruker dem til å slette alle filer som du virkelig ønsker å slette alle filene.

Send (hurtigtast g) åpner et skannevindu der du kan se alle de andre enhetene som kjører Pafera File Server i nettverket ditt.

Sende filer til en annen server

Merk at alle enhetene må være på samme subnett og kjøre på samme port, så hvis du er på 192.168.0.100 og enheten du prøver å sende til er på 192.168.1.100, vil ikke skanneren oppdage den andre enheten. Du kan selvfølgelig alltids logge inn på enhetens server og laste opp filer ved hjelp av nettleseren din i stedet.

For enkelhets skyld samles alle filer som du sender til en annen enhet i en mappe som heter "Mottatt" under serverroten. Det kan hende jeg endrer dette senere, men foreløpig er det praktisk at alle nye filer vises i samme mappe, slik at du kan flytte dem til riktig sted senere.

Den nye filen i mappen Received

Nedlasting (hurtigtast l), Endre navn (hurtigtast r), Flytting (hurtigtast m), Kopiering (hurtigtast c), Sletting (hurtigtast d) og Permanent sletting (p) kan alle brukes på flere filer samtidig, med unntak av nedlasting i mobile nettlesere, der du bare kan laste ned én fil om gangen. Vær forsiktig, for Permanent Delete betyr egentlig Permanent Slett. Lagre alltid en kopi av viktige filer på en annen enhet før du trykker på sletteknappen.

Undelete (hurtigtast u) brukes bare for filer som har blitt slettet én gang, og som derfor har filtypen ".deleted". Den kan ikke bringe tilbake permanent slettede filer. De er ikke lengtende. De har gått videre. Disse filene finnes ikke lenger. De er eks-filer.

Bruke lysbildeserien

Grensesnittet for lysbildefremvisning. Alt nederst er klikkbart.

En av de viktigste funksjonene som folk alltid etterspør i en filbrowser, er en god lysbildefremvisning. Når du har 6000 bilder av sønnen din på telefonen for å vise dem til tilfeldige fremmede, er det ikke vanskelig å skjønne hvorfor ;) De fleste SMB-klienter har ikke forhåndsvisning av bilder eller lysbildefremvisning, så det er ganske frustrerende å prøve å finne ett bestemt bilde ved hjelp av iPhone Files-appen.

Lysbildefremvisningsfunksjonen i Pafera File Server kan aktiveres på et par forskjellige måter:

  1. Klikk på miniatyrbildet av et bilde.
  2. Velg "Slide Show" fra systemmenyen.
  3. Velg "Deep Slide Show" fra systemmenyen.
  4. Gjør et søk eller et dybdesøk for å velge filene du vil vise frem, og da klikk på miniatyrbildet av det første bildet.

Uansett hvordan du starter lysbildefremvisningen, vil det være en sletteknapp helt øverst med navnet på det aktuelle bildet, og en verktøylinje nederst med funksjoner for tilfeldig tilpasning, rotasjon, avslutning, fremover og bakover.

Hvis du vil gå til et bestemt bildenummer, klikker du bare på bildeposisjonen på verktøylinjen, skriver inn nummeret du ønsker, og går videre derfra.

Velge et nummer å gå til

Lysbildefremvisningen støtter sveipebevegelser, som faktisk er min foretrukne metode for å navigere på telefonen. Alt du trenger å gjøre er å sveipe tommelen litt til venstre for å gå til forrige bilde, til høyre for å gå til neste bilde, opp for å slette det aktuelle bildet eller ned for å avslutte lysbildefremvisningen.

Hvis du bruker en bærbar datamaskin eller har et Bluetooth-tastatur koblet til telefonen, blir det imidlertid enda enklere å bruke lysbildefremvisningen.

Venstre pil Forrige bilde
Høyre pil Neste bilde
Pil opp Slett bilde
Pil ned/Escape Avslutt lysbildefremvisning
r Tilfeldig bilde
g Gå til bildenummer
q Roter 90 grader mot klokken
e Roter 90 grader med klokken

Konfigurasjon

Pafera File Server kan konfigureres fra en JSON-fil med navnet paferafileserver.cfg i samme mappe, eller fra kommandolinjeargumenter i formatet key=value. Hvis begge er angitt, vil kommandolinjeargumentene overstyre innstillingene i konfigurasjonsfilen.

En vanlig kommandolinje er

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

Hvis du ønsker å vise Jim's Pictures-katalog til alle besøkende på port 5000, vil du bruke

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

Hvis du ikke angir serverroot, vil standardinnstillingen være hjemmekatalogen din.

Hvis du ikke angir ip og port, vil standardinnstillingen være 0.0.0.0.0:9999.

I tillegg kan følgende alternativer skrives inn på kommandolinjen for å deaktivere visse funksjoner selv om brukeren har riktig passord.

disabledelete
disablerename
disablemove
disablecopy
disablenewfolder
disabledelete
disablepermanentdelete
disablesend
disableupload

Alle kommandolinjeargumenter kan også spesifiseres i en JSON-fil kalt paferafileserver.cfg i den aktuelle mappen, for eksempel

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

Du kan velge den metoden som passer best for deg.

I Windows er det ofte enklest å opprette en snarvei til den kjørbare filen og angi argumentene dine i snarveien.

For Termux på Android er den enkleste måten å starte den kjørbare filen på å installere Termux Widget-appen fra F-Droid og konfigurere kommandolinjen inne i widgetens skript.

Fremtidige planer

Det er ikke planlagt ytterligere endringer på nåværende tidspunkt, siden dette bare var et morsomt introduksjonsprosjekt for å leke med Rust, men hvis noen andre skulle

  1. Skrive Kotlin/Swift-versjoner som kan kastes ut i appbutikkene
  2. Oversett denne appen til flere språk
  3. Opprett ulike CSS-temaer
  4. Implementere en rsync-lignende algoritme for sikkerhetskopiering og gjenoppretting
  5. Eller noe annet du kan tenke deg

Jeg tar gjerne imot innspill til dette enkle prosjektet.

Som alltid håper jeg at dere finner denne appen nyttig, og hvis dere ønsker å tilpasse den til deres egne formål, er jeg alltid tilgjengelig som teknisk konsulent. Ha det gøy!

Om forfatteren

Jim har programmert siden han fikk en IBM PS/2 på 90-tallet. Den dag i dag foretrekker han fortsatt å skrive HTML og SQL for hånd, og fokuserer på effektivitet og korrekthet i arbeidet sitt.