Moet het zo moeilijk zijn om bestanden met een vriend te delen?

Maak kennis met Pafera File Server, de kleine Android-server die uitgroeide tot een volwaardige bestandsbeheerder, diavoorstellingviewer en mediaserver
2023-04-17 22:41:37
👁️ 840
💬 0

Inhoud

  1. Invoering
  2. De kandidaten
  3. De oplossing
  4. Hoe werkt dit?
  5. De server installeren
  6. Bladeren door bestanden
  7. Het systeemmenu
  8. Het menu Bestand
  9. De diavoorstelling gebruiken
  10. Configuratie
  11. Toekomstplannen

Invoering

Wauw! Dat is echt cool. Kun je dat met mij delen?

Als techneut die voortdurend met nieuwe gadgets en apps komt, kan ik me niet herinneren hoe vaak bovenstaande zin al tegen me is gezegd op feestjes, vergaderingen of zelfs terwijl ik op de metro wachtte.

Ik kan me echter nog goed herinneren hoe vaak we tot de volgende woordenwisseling kwamen:

Mij Tuurlijk! Wat gebruik jij?
Vriend Nou, ik heb app A.
Mij Hmm... Die heb ik niet. Heb jij app B?
Vriend Nee, die heb ik ook niet. Heb jij methode C?
Mij Oké. Laten we dat eens proberen. Hmm... het maakt geen verbinding. Wat dacht je ervan om methode D te gebruiken?
Vriend Dat werkt ook niet.

Het delen van een bestand is een gebruikelijke taak sinds computers in de middeleeuwen een ding werden. Eerst keken enthousiaste programmeurs vrolijk naar elkaars afdrukken, daarna werd het kopiëren van ponskaarten. Daarna werden magnetische schijven de nieuwe hot trend, daarna ging de technologie over op optische schijven, flask drives en draadloze overdrachten.

Toch lijkt het erop dat we na 70 jaar nog steeds in een stadium zitten waarin we niet zomaar schattige shiba-filmpjes kunnen delen zonder dat we ons door allerlei hoepels moeten worstelen, vreemde apps moeten downloaden of moeten terugvallen op trage draadloze verbindingen.

Zullen we eens iets anders proberen?

De kandidaten

Maar Jim, ik deel elke dag zonder problemen bestanden, zeg je?

Laten we eens kijken naar de meest voorkomende methoden die mensen gebruiken om bestanden over te zetten.

Methode Mislukking
1. LuchtDrop Kun je AirDrop naar een Android-telefoon gebruiken? Oké dan!
2. Dichtbij Delen Kun je NearBy Share-bestanden naar een iPhone delen? Hmm...
3. AirDroid, SHAREit, Resilio Sync, Send Anywhere, enz... Ga je nu tegen iemand bij een bushalte zeggen dat hij snel dezelfde app moet installeren als jij, zodat hij een bestand kan ontvangen? Goed dan!
4. Chatprogramma Veel chatprogramma's beperken welke bestandstypen u kunt verzenden, comprimeren uw HD-video's opnieuw en u moet wachten tot het bestand langzaam is geüpload en vervolgens is gedownload naar het apparaat van uw vriend. We lopen ook tegen het probleem van methode 3 aan, waarbij u hetzelfde chatprogramma moet hebben geïnstalleerd om bestanden over te dragen.
5. Bluetooth Zelfs met Bluetooth 5 is het overbrengen van een HD-video van 700 MiB te vergelijken met het bekijken van drogende verf in het vochtige weer in Florida.
6. E-mail De meeste e-maildiensten beperken de grootte van bijlagen en het is zelfs langzamer dan het overbrengen via chatprogramma's. Ik heb de verhalen van iPhone-gebruikers die bestanden naar zichzelf mailen zodat ze een document konden printen echter altijd wel grappig gevonden. ;)
7. DropBox, OneDrive, enz... Er zijn dezelfde upload-/downloadproblemen als bij methode 3 en 4.
8. USB-stick Eigenlijk best te doen en snel, maar je moet er wel eentje meenemen en de juiste adapter hebben om te kunnen communiceren met het apparaat van je vriend. Ik heb er zelf altijd eentje in mijn zakken, maar het is nogal een kwestie van geluk of het apparaat van de persoon met wie je het deelt je drive ondersteunt.
9. Laat je vriend een foto/video maken van je telefoonscherm met zijn/haar telefooncamera! 100% succespercentage bij het overbrengen van gegevens van slechte kwaliteit!
Wat gebeurt er als delen niet werkt?

Het ziet er op dit moment niet zo goed voor ons uit, hè?

De oplossing

Kortom, om een efficiënte, universele oplossing te zijn, hebben we iets nodig dat

  1. Kan op elk apparaat worden gebruikt
  2. Ondersteunt directe WiFi-overdrachten zonder uploaden naar een server en terug
  3. Onze 4K-video kan niet opnieuw worden gecomprimeerd naar 480p.
  4. Werkt waar we zelfs geen telefoonsignaal kunnen krijgen

Als er nu eens iets was dat op elk apparaat vooraf geïnstalleerd was, dat ontworpen was om toegang te krijgen tot andere computers met een algemeen geaccepteerd protocol en dat de mogelijkheid had om bestanden te uploaden en downloaden...

Iets...

leuk vinden...

A...

webbrowser!

Ondersteunt Windows CE HTML 5? Geweldig!

Hoe werkt dit?

Hoe werkt een webbrowser bij het overbrengen van bestanden?

Er zijn drie basisstappen.

  1. Zorg dat beide apparaten verbinding maken met hetzelfde draadloze netwerk/hotspot
  2. Laat uw vriend het adres van uw apparaat in zijn browser typen
  3. Blader, bekijk, download en upload zoveel als u wilt
Zelfs in 2023 is het gebruik van de hotspot van je telefoon nog steeds de snelste manier om bestanden over te zetten, vooral als je in de bergen aan het wandelen bent!

De voordelen van deze aanpak zijn:

  1. Werkt op elk apparaat met een webbrowser (dat wil zeggen, tegenwoordig vrijwel alles)
  2. Je hoeft niet op elk bestand afzonderlijk te klikken, op verzenden te drukken en te wachten tot je vriend accepteert. Je vriend kan zelf kijken wat hij wil en bestanden downloaden.
  3. U kunt een hele groep mensen tegelijk laten browsen in plaats van één voor één.

Uiteraard werkt deze server niet op iPhones en iPads, want Apple beperkt niet alleen de toegang tot het bestandssysteem op iOS-apparaten, maar je kunt ook geen Linux-programma's uitvoeren tenzij je Cydia als root hebt.

Gelukkig heb je maar *één* apparaat nodig om de server te laten draaien, dus je Apple-vrienden kunnen nog steeds zonder problemen verbinding maken met je Android-telefoon en nog steeds bestanden downloaden en uploaden. Bovendien zijn ze er al aan gewend dat ze geen andere systemen kunnen gebruiken, omdat AirDrop alleen werkt voor Apple-apparaten. ;)

De server installeren

Voor snelheid en efficiëntie is de Pafera File Server een Linux/Windows-app geschreven in Rust, dus helaas kun je hem niet zomaar downloaden van de app store. Ik maak misschien later een app store-versie in Kotlin als iemand bereid is om me ervoor te betalen, maar tenzij je Jerry Maguire bent, zul je het voorlopig moeten doen met de Rust-versie.

Gelukkig hebben veel open source programmeurs die veel intelligenter zijn dan ik, de handen ineengeslagen om apps te maken waarmee je Linux-programma's op je Android-telefoon kunt draaien, met wisselend succes.

Daarom hoef je alleen maar Termux op je telefoon te installeren, twee commando's te kopiëren en te plakken en een paar keer op Enter te drukken. Het is geen installatie met één klik, maar het is ook niet SpaceX die StarShip bouwt, en je krijgt toegang tot een heel ander ecosysteem van coole programma's om mee te spelen.

Dit is jouw brein onder invloed van drugs... eh... telefoon op Termux.

De installatie verloopt als volgt:

  1. Download de Termux-app van F-Droid of van Codeberg
  2. Start de app
  3. Kopieer en plak het volgende in de terminal en druk op Enter.

    curl -O https://pafera.com/installfileserver.sh
    
  4. Kopieer en plak nog een opdracht in de terminal en druk op Enter.

    bash installfileserver.sh
    
  5. Druk op Enter op uw toetsenbord als er vragen verschijnen tijdens het pakketupgradeproces.
  6. Laat uw vriend de URL op het scherm typen.

    De URL vinden tussen de weergave

Zodra u de server hebt geïnstalleerd, kunt u deze op elk gewenst moment afsluiten door de Termux-sessie te verlaten.

En als u de server opnieuw wilt opstarten met een wachtwoord dat wijzigingen toestaat, typ dan

./paferafileserver password=yourpasswordhere

in Termux, of druk gewoon op de pijl omhoog om uw eerder getypte opdrachten te selecteren.

Het is niet zo eenvoudig als het naar beneden halen van je meldingen en tikken op 'Delen in de buurt', maar je voorkomt ook dat de server per ongeluk wordt gestart en je krijgt veel meer functionaliteit voor je moeite.

Bent u een Rust-programmeur? Dan is de installatie veel eenvoudiger voor u.

Het enige wat u hoeft te doen is typen

cargo install paferafileserver

Wacht tot de vracht zijn werk doet, en voilà! Je bent klaar!

Als u Pafera File Server op Windows of Linux wilt uitvoeren, zijn hieronder vooraf gebouwde binaire bestanden beschikbaar 7-Zip archieven.

  1. Linux (amd64)
  2. Termux op Android 7+
  3. Linux (armv7h voor Debian op Userland - Android 5 en 6)
  4. Windows stand-alone exe
  5. Windows compleet (inclusief FFMpeg en ImageMagick)

Bladeren door bestanden

Zodra uw vriend de URL van uw server in zijn of haar browser heeft getypt, zou zijn of haar telefoon er ongeveer zo uit moeten zien.

Pafera File Server-startpagina

Als u geen bestanden ziet, controleer dan of uw vriend JavaScript heeft ingeschakeld. We gebruiken namelijk scripts om bestanden te sorteren en weer te geven.

Als snelle introductie ziet u linksboven de knop voor het systeemmenu, de knop voor recente bestanden en de knop voor de thuismap.

Klikken op bestanden

Wanneer u op een miniatuur van een afbeelding klikt, wordt een diavoorstelling gestart. Wanneer u op de bestandsnaam klikt, wordt het bestand gedownload.

Wanneer u op de menuknop voor een bestand klikt, wordt het actiemenu voor dat bestand geopend. Wanneer u op het vierkantje eronder klikt, selecteert u het bestand.

Om snel een reeks bestanden te selecteren, klikt u op de selectieknop voor het eerste bestand, klikt u vervolgens op de menuknop voor het laatste bestand en kiest u 'Selecteer tot hier'.

Het systeemmenu

Het pop-upmenu van het systeem

Met Zoeken en Diep zoeken (sneltoetsen t en f) kunt u een paar letters typen en alle bestanden bekijken die die letters bevatten.

Het verschil is dat bij een normale zoekopdracht alleen naar de bestanden in de huidige map wordt gekeken, terwijl bij een diepgaande zoekopdracht ook naar alle mappen in die map wordt gekeken.

Diavoorstelling en Diepe diavoorstelling (sneltoetsen z en x) volgen dezelfde logica. Kies degene die u wilt op basis van of u afbeeldingen in alle mappen in deze map wilt opnemen of niet.

Met de sneltoets v schakelt u van de normale detailweergave over naar een pictogramweergave van alle afbeeldingen en video's in deze map.

Sorteren (sneltoets s) laat u kiezen hoe de bestanden worden geordend. U kunt kiezen uit de bestandsnaam, grootte, datum en tijdsverschil om de bestanden te sorteren. Ik geef persoonlijk de voorkeur aan de tijdsverschilweergave, omdat "Vijf minuten geleden" veel nuttiger voor mij is dan "14:55".

De weergave Recente bestanden (sneltoets e) toont u de 512 meest recent gewijzigde bestanden in de huidige map en alle mappen in deze map. Wees voorzichtig met het gebruik van deze weergave voor uw thuismap, want het kan even duren om alle bestanden te controleren als u honderdduizenden kleine bestanden moet inspecteren.

Set Password (Sneltoets w) laat je vriend het wachtwoord typen om bestanden te wijzigen, uploaden en verwijderen. Zonder dit wachtwoord kan niemand iets op je telefoon wijzigen, dus bewaar het veilig. Je kunt het instellen op de opdrachtregel door te typen password=yaddayaddayadda of in paferafileserver.cfg met behulp van het formaat

{
  "password":"yaddayaddayadda"
}

Met Nieuwe map (sneltoets o) wordt u gevraagd de naam van de nieuwe map op te geven die u in de huidige map wilt maken.

Met Verborgen bestanden weergeven (sneltoets i) kunt u bestanden en mappen die beginnen met een punt, weergeven of verbergen. Unix gebruikt deze optie om aan te geven dat deze bestanden normaal gesproken niet zichtbaar zijn voor de gebruiker.

Als u One Click Download (sneltoets k) inschakelt, kunt u een bestand direct downloaden door erop te klikken, in plaats van dat het in uw browser wordt weergegeven.

Sneltoetsen weergeven (Sneltoets h) toont welke toetsen u kunt gebruiken in de mapweergave en de diavoorstellingsweergave.

Zoom In (Sneltoets .) en Zoom Out (Sneltoets ,) veranderen de grootte van alles op het scherm. Gebruik deze om uw pagina aan te passen als de standaardgroottes van uw systeem niet naar wens zijn.

Het menu Bestand

Het pop-upmenu Bestand

Select to Here laat je alle bestanden selecteren tussen degene die je eerder hebt geselecteerd en deze keer. Het is erg handig als vervanging om te voorkomen dat je het rechtermuisknopmenu moet vervangen voor het kopiëren van links op zowel desktop als mobiel.

Select All (Sneltoets a) en Select None (Sneltoets n) zijn zelfverklarend. Wees voorzichtig wanneer u ze gebruikt om alle bestanden te verwijderen die u wilt verwijderen. Echt wil alle bestanden verwijderen.

Met Verzenden (sneltoets g) opent u een scanvenster waarin u alle andere apparaten in uw netwerk kunt zien waarop Pafera File Server draait.

Bestanden naar een andere server verzenden

Let op dat alle apparaten op hetzelfde subnet moeten zitten en op dezelfde poort moeten draaien, dus als u op 192.168.0.100 zit en het apparaat waarnaar u probeert te verzenden op 192.168.1.100 zit, dan detecteert de scanner het andere apparaat niet. U kunt natuurlijk ook gewoon inloggen op de server van dat apparaat en bestanden uploaden met uw browser.

Voor de eenvoud worden alle bestanden die u naar een ander apparaat stuurt verzameld in een map genaamd "Received" onder de server root. Ik verander dit misschien later, maar voor nu is het handig om alle nieuwe bestanden in dezelfde map te laten verschijnen, zodat u ze later naar de juiste plek kunt verplaatsen.

Het nieuwe bestand in de map Ontvangen

Downloaden (sneltoets l), hernoemen (sneltoets r), verplaatsen (sneltoets m), kopiëren (sneltoets c), verwijderen (sneltoets d) en permanent verwijderen (p) kunnen allemaal aan meerdere bestanden tegelijk werken, behalve downloaden op mobiele browsers, waar u slechts één bestand tegelijk kunt downloaden. Wees voorzichtig, want permanent verwijderen betekent echt Permanent Verwijderen. Sla altijd een kopie van uw belangrijke bestanden op een ander apparaat op voordat u op de verwijderknop drukt.

Undelete (sneltoets u) wordt alleen gebruikt voor bestanden die al een keer zijn verwijderd en dus de extensie ".deleted" hebben. kan niet breng permanent verwijderde bestanden terug. Die zijn niet aan het verkwijnen. Ze zijn doorgegeven. Die bestanden zijn er niet meer. Het zijn ex-bestanden.

De diavoorstelling gebruiken

De diavoorstellinginterface. Alles onderaan is klikbaar.

Een van de beste functies waar mensen altijd om vragen in een bestandsbrowser is een goede diavoorstelling. Als je ongeveer 6.000 foto's van je zoon op je telefoon hebt staan om aan willekeurige vreemden te laten zien, is het niet moeilijk om te zien waarom. ;) De meeste SMB-clients hebben geen voorbeeldafbeeldingen of diavoorstellingen, dus het is nogal frustrerend om een bepaalde afbeelding te vinden met de iPhone Files-app.

De diavoorstellingsfunctie in Pafera File Server kan op verschillende manieren worden geactiveerd:

  1. Klik op de miniatuur van een afbeelding.
  2. Selecteer 'Diavoorstelling' in het systeemmenu.
  3. Selecteer 'Diepe diavoorstelling' in het systeemmenu.
  4. Voer een zoekopdracht of een diepgaande zoekopdracht uit om de bestanden te kiezen die u wilt laten zien, en Dan Klik op de miniatuur van de eerste afbeelding.

Ongeacht hoe u de diavoorstelling start, staat er bovenaan een verwijderknop met de naam van de huidige afbeelding. Onderaan bevindt zich een werkbalk met functies voor willekeurig maken, roteren, afsluiten, vooruitspoelen en terugspoelen.

Als u naar een bepaald afbeeldingsnummer wilt gaan, klikt u gewoon op de afbeeldingspositie op de werkbalk, typt u het gewenste nummer en gaat u van daaruit verder.

Een nummer kiezen om naartoe te gaan

De diavoorstelling ondersteunt veegbewegingen, wat eigenlijk mijn favoriete manier is om te navigeren op de telefoon. Het enige wat u hoeft te doen is uw duim lichtjes naar links te vegen om naar de vorige afbeelding te gaan, naar rechts om naar de volgende afbeelding te gaan, omhoog om de huidige afbeelding te verwijderen of omlaag om de diavoorstelling te verlaten.

Als u echter een laptop gebruikt of een Bluetooth-toetsenbord op uw telefoon hebt aangesloten, wordt het gebruik van de diavoorstelling nog eenvoudiger.

Pijl naar links Vorige afbeelding
Pijl naar rechts Volgende afbeelding
Pijl omhoog Afbeelding verwijderen
Pijltje omlaag/Escape Diavoorstelling verlaten
R Willekeurige afbeelding
G Ga naar afbeeldingnummer
Q Draai 90 graden tegen de klok in
en Draai 90 graden met de klok mee

Configuratie

Pafera File Server kan worden geconfigureerd vanuit een JSON-bestand met de naam paferafileserver.cfg in dezelfde map, of vanuit opdrachtregelargumenten in de vorm key=value. Als beide worden opgegeven, overschrijven de opdrachtregelargumenten de instellingen van het configuratiebestand.

Een veelgebruikte opdrachtregel is

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

Als u dus de map Jim's Pictures aan alle bezoekers op poort 5000 wilt aanbieden, gebruikt u:

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

Als u serverroot niet opgeeft, wordt standaard uw thuismap gebruikt.

Als u geen IP en poort opgeeft, wordt standaard 0.0.0.0:9999 gebruikt.

Bovendien kunnen de volgende opties op de opdrachtregel worden getypt om bepaalde functionaliteit uit te schakelen, zelfs als de gebruiker het juiste wachtwoord heeft.

disabledelete
disablerename
disablemove
disablecopy
disablenewfolder
disabledelete
disablepermanentdelete
disablesend
disableupload

Alle opdrachtregelargumenten kunnen ook worden opgegeven in een JSON-bestand met de naam paferafileserver.cfg in de huidige map, zoals

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

U kunt kiezen welke methode het beste voor u werkt.

Voor Windows is het vaak het makkelijkst om een snelkoppeling naar het uitvoerbare bestand te maken en uw argumenten in de snelkoppeling op te geven.

Voor Termux op Android is de eenvoudigste manier om het uitvoerbare bestand te starten door de Termux Widget-app van F-Droid te installeren en uw opdrachtregel in het script van de widget te configureren.

Toekomstplannen

Er zijn op dit moment geen verdere wijzigingen gepland, aangezien dit slechts een leuk introductieproject was om met Rust te spelen, maar als iemand anders

  1. Schrijf Kotlin/Swift-versies om te testen in de app-winkels
  2. Vertaal deze app voor meerdere talen
  3. Verschillende CSS-thema's maken
  4. Implementeer een rsync-achtig algoritme voor back-up en herstel
  5. Of iets anders waar je aan kunt denken

Ik zou het zeker op prijs stellen als er aanvullingen zouden komen op dit eenvoudige project.

Zoals altijd hoop ik dat jullie deze app nuttig vinden, en als jullie hem willen aanpassen aan jullie 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.