Ilyen nehéznek kell lennie a fájlok megosztásának egy baráttal?

Bemutatkozik a Pafera File Server, a kis Android szerver, amely teljes értékű fájlkezelővé, diavetítés-nézegetővé és médiaszerverré nőtte ki magát
2023-04-17 22:41:37
👁️ 841
💬 0

Tartalom

  1. Bevezetés
  2. A jelöltek
  3. A Megoldás
  4. Tehát hogyan működik ez?
  5. A szerver telepítése
  6. Fájlok böngészése
  7. A Rendszer menü
  8. A Fájl menü
  9. A diavetítés használata
  10. Konfiguráció
  11. Jövőbeli tervek

Bevezetés

Hűha! Ez nagyon klassz. Megosztanád velem?

Technikai srác lévén, akinek folyamatosan vannak új kütyüi és alkalmazásai, nem emlékszem, hányszor mondták el nekem a fenti kifejezés valamelyik változatát bulikon, értekezleten vagy akár a metróra várva.

Arra azonban határozottan emlékszem, hogy hányszor kötöttük ki a következő eszmecserét:

Nekem Persze! mit használsz?
Barát Nos, van A alkalmazásom.
Nekem Hmm... nekem nincs ilyenem. Van B alkalmazásod?
Barát Nem, nekem sincs ilyenem. Van C módszered?
Nekem Rendben. Próbáljuk meg. Hmm... nem csatlakozik. Mi lenne, ha a D módszert használnánk?
Barát Ez sem működik.

A fájlok megosztása gyakori feladat, mióta a számítógépek már a sötét középkorban léteznek. Először a lelkes programozók nézték boldogan egymás nyomatait, majd a lyukkártyák másolása lett belőle. Később a mágneses lemezek lettek az új trendek, majd a technológia az optikai lemezekre, lombikmeghajtókra és a vezeték nélküli adatátvitelre költözött.

Úgy tűnik azonban, hogy még mindig abban a szakaszban tartunk, hogy 70 év után nem tudunk könnyen megosztani aranyos shiba-videókat anélkül, hogy ugrásszerűen ugrálnánk, furcsa alkalmazásokat töltenénk le, vagy nem folyamodnánk lassú vezeték nélküli adatátvitelhez.

Mi lenne, ha kipróbálnánk valami mást?

A jelöltek

De Jim, minden nap gond nélkül osztok meg fájlokat, azt mondod?

Nos, nézzük meg azokat a gyakori módszereket, amelyeket az emberek a fájlok átvitelére használnak.

Módszer Sikertelen
1. AirDrop Tudsz AirDrop-ot küldeni Android telefonra? oké akkor!
2. Közeli megosztás Meg lehet NearBy megosztani fájlokat iPhone-on? Hmm...
3. AirDroid, SHAREit, Resilio Sync, Küldés bárhová stb. Szólni fog valakinek a buszmegállóban, hogy gyorsan telepítse ugyanazt az alkalmazást, mint Ön, csak azért, hogy megkaphassa a fájlt? Rendben akkor!
4. Csevegőprogram Számos csevegőprogram korlátozza, hogy milyen típusú fájlokat küldhet, újratömöríti HD-videóit, és meg kell várnia, amíg a fájl lassan feltöltődik, majd letölti ismerőse eszközére. Szintén beleütközünk a 3. módszer problémájába, ahol ugyanazt a csevegőprogramot kell telepítenie a fájlok átviteléhez.
5. Bluetooth Még Bluetooth 5-tel is egy 700 MiB-os HD videó átvitele olyan, mintha párás floridai időben száradna a festék.
6. E-mail A legtöbb e-mail szolgáltatás korlátozza a mellékletek méretét, és ez még lassabb is, mint a csevegőprogramokon keresztül történő átvitel. Azonban mindig is elég mulatságosnak találtam azokat a történeteket, amikor az iPhone-felhasználók e-mailben küldtek fájlokat maguknak csak azért, hogy ki tudjanak nyomtatni egy dokumentumot. ;)
7. DropBox, OneDrive stb... Ugyanazokba a feltöltési/letöltési problémákba ütközik, mint a 3. és 4. módszer.
8. USB flash meghajtó Valójában elég jól kivitelezhető és gyors, de ne felejtse el magával vinni egyet, és rendelkeznie kell a megfelelő adapterrel is, amellyel csatlakoztathatja barátja eszközét. Jómagam mindig a zsebemben tartok egyet, de eléggé ütős, hogy annak a személynek az eszköze, akivel megoszt, támogatja-e a vezetést.
9. A barátod készítsen képet/videót a telefon képernyőjéről a telefon kamerájával! 100%-os sikerarány rossz minőségű adatok átvitelénél!
Mi történik, ha a megosztás nem működik?

Jelenleg nem állnak jól a dolgok, igaz?

A Megoldás

Röviden tehát: ahhoz, hogy hatékony, univerzális megoldás legyünk, szükségünk van valamire, ami

  1. Minden eszközön használható
  2. Támogatja a közvetlen WiFi átvitelt anélkül, hogy feltöltés lenne a szerverre és vissza
  3. Nem tömörítjük újra 4K-s videónkat 480p-re.
  4. Ott működik, ahol még telefonjelet sem tudunk fogadni

Nos, ha lenne valami, ami minden eszközre előre telepítve van, amelyet úgy terveztek, hogy hozzáférjen más számítógépekhez egy általánosan elfogadott protokollal, és képes legyen fájlok feltöltésére/letöltésére...

Valami...

mint...

egy...

webböngésző!

A Windows CE támogatja a HTML 5-öt? Groovy!

Tehát hogyan működik ez?

Tehát hogyan működik a webböngésző a fájlok átvitelére?

Három alapvető lépés van.

  1. Mindkét eszközt csatlakoztassa ugyanahhoz a vezeték nélküli hálózathoz/hotspothoz
  2. Hagyja, hogy ismerőse beírja a böngészőjében eszköze címét
  3. Böngésszen, tekintse meg, töltse le és töltse fel, amennyit csak szeretne
Még 2023-ban is a telefon saját hotspotja a leggyorsabb módja a fájlok átvitelének, különösen, ha hegyen túrázik!

Ennek a megközelítésnek az előnyei a következők

  1. Minden olyan eszközön működik, amelyen van webböngésző (vagyis manapság szinte mindenen)
  2. Nem kell minden fájlra külön-külön kattintania, meg kell nyomnia a Küldést, és meg kell várnia, amíg barátja elfogadja. Baráta megnézheti, mit akar, és önállóan letöltheti a fájlokat.
  3. Ahelyett, hogy egyenként böngészhet egy egész embercsoportot egyszerre.

Természetesen ez a szerver nem fog futni iPhone-on és iPaden, mert az Apple nem csak iOS-eszközökön korlátozza a fájlrendszerhez való hozzáférést, hanem Linux-programokat sem futtathat, hacsak nem rootolt Cydiával. .

Szerencsére csak *egy* eszközre van szüksége a szerver futtatásához, így Apple barátai továbbra is probléma nélkül csatlakozhatnak Android telefonjához, és továbbra is letölthetik és feltölthetik a fájlokat. Emellett már megszokták, hogy nem tudnak más rendszereket használni, mivel az AirDrop csak Apple eszközökön működik. ;)

A szerver telepítése

A sebesség és a hatékonyság érdekében a Pafera File Server egy Rust nyelven írt Linux/Windows alkalmazás, így sajnos nem töltheti le egyszerűen az alkalmazásboltból. Lehet, hogy később készítek egy alkalmazásbolt-verziót Kotlinban, ha valaki hajlandó fizetni érte, de hacsak nem Jerry Maguire vagy, akkor most meg kell elégednie a Rust verzióval.

Szerencsére sok, nálam sokkal intelligensebb nyílt forráskódú programozó összefogott, hogy olyan alkalmazásokat hozzon létre, amelyek lehetővé teszik Linux-programok futtatását az Android telefonján, változó sikerrel.

Ezért nem kell mást tennie, mint telepítenie a Termuxot a telefonjára, kimásolnia és beillesztenie két parancsot, és néhányszor megnyomnia az Enter billentyűt. Ez nem egy kattintással telepíthető, de nem is a SpaceX építi a StarShip-et, és hozzáférhet a menő programok egész más ökoszisztémájához, amellyel játszhat.

Ez az agyad a kábítószeren... na... telefon a Termuxon.

A telepítés tehát a következő:

  1. Töltse le a Termux alkalmazást az F-Droidtól vagy Codebergtől
  2. Indítsa el az alkalmazást
  3. Másolja és illessze be a következőket a terminálba, majd nyomja meg az enter billentyűt.

    curl -O https://pafera.com/installfileserver.sh
    
  4. Másoljon és illesszen be még egy parancsot a terminálba, majd nyomja meg az enter billentyűt.

    bash installfileserver.sh
    
  5. Nyomja meg az Enter billentyűt a billentyűzeten a csomagfrissítési folyamat során megjelenő üzenetek megjelenítéséhez.
  6. Kérje meg barátját, hogy írja be a képernyőn megjelenő URL-t.

    Az URL megkeresése a kijelzőn

Most, miután telepítette a szervert, bármikor kiléphet egyszerűen a Termux munkamenetből való kilépéssel.

Ha pedig újra szeretné indítani a szervert egy olyan jelszóval, amely lehetővé teszi a változtatásokat, akkor írja be

./paferafileserver password=yourpasswordhere

a Termuxba, vagy egyszerűen nyomja meg a felfelé mutató nyilat a korábban begépelt parancsok kiválasztásához.

Nem olyan egyszerű, mint lehúzni az értesítéseket, és a "Közeli megosztás" de véletlenül sem fogod futtatni a szervert, és sokkal több funkcionalitást kapsz a problémáidra.

Ha történetesen Rust programozó vagy, akkor a telepítés sokkal egyszerűbb az Ön számára.

Nincs más dolgod, mint gépelni

cargo install paferafileserver

Várja meg, amíg a rakomány megteszi a dolgát, és íme! Kész vagy!

Ha a Pafera fájlkiszolgálót Windows vagy Linux rendszeren szeretné futtatni, az előre beépített bináris fájlok az alábbiakban érhetők el 7-Zip levéltár.

  1. Linux (amd64)
  2. Termux Android 7+ rendszeren
  3. Linux (armv7h Debianhoz Userlanden – Android 5 és 6)
  4. Windows önálló exe
  5. A Windows kész (beleértve az FFMpeg-et és az ImageMagick-et)

Fájlok böngészése

Miután barátjának sikerül beírnia a szerver URL-címét a böngészőjébe, telefonjának valahogy így kell kinéznie.

Pafera fájlszerver honlapja

Ha nem lát fájlokat, győződjön meg arról, hogy ismerőse engedélyezte a JavaScriptet, mivel a fájlok rendezésére és megjelenítésére szkriptet használunk.

Gyors alapozóként a bal felső sarokban kezdődik a rendszermenü gomb, a legutóbbi fájlok gomb és a kezdőkönyvtár gomb.

Fájlokra kattintva

Bármely kép bélyegképére kattintva diavetítés indul, míg a fájl nevére kattintva letölti a fájlt.

A fájl menügombjára kattintva megnyílik az adott fájl műveleti menüje, míg az alatta lévő négyzetre kattintva kiválasztja a fájlt.

Fájlok tartományának gyors kiválasztásához kattintson az első fájl kijelölésére, majd az utolsó fájl menügombjára, és válassza a "Kiválasztás ide" lehetőséget.

A Rendszer menü

A Rendszer menü előugró ablaka

A Keresés és a Mély keresés (t és f gyorsbillentyűk) egyaránt lehetővé teszi, hogy beírjon néhány betűt, és megtekintse az összes fájlt, amely ezeket a betűket tartalmazza.

A különbség az, hogy a normál keresés csak az aktuális mappában lévő fájlokat nézi, míg a Deep Search a mappán belüli összes mappát is.

A diavetítés és a mély diavetítés (z és x gyorsbillentyűk) ugyanazt a logikát követik. Válassza ki a kívántat attól függően, hogy a mappán belüli összes mappában szeretne-e képeket felvenni vagy sem.

A Nézet átkapcsolása (V gyorsbillentyű) a normál részletes nézetről a mappában lévő összes kép és videó ikonnézetére vált.

A Rendezés (Gyorsbillentyűk) segítségével kiválaszthatja a fájlok sorrendjét. A fájlok rendezéséhez választhat a fájlnév, méret, dátum és időkülönbség közül. Én személy szerint jobban szeretem az időeltérés nézetet, mivel "Öt perce" sokkal hasznosabb számomra, mint a "14:55".

A Legutóbbi fájlok nézet (e gyorsbillentyű) megjeleníti a legutóbb módosított 512 fájlt az aktuális mappában, valamint az ezen belül található összes mappát. Legyen óvatos, ha ezt a nézetet saját mappájához használja, mert eltarthat egy ideig az összes fájl ellenőrzése, ha több százezer kis fájlt kell megvizsgálnia.

Jelszó beállítása (w gyorsbillentyű) lehetővé teszi, hogy barátja beírja a jelszót a fájlok módosításához, feltöltéséhez és törléséhez. E jelszó nélkül senki sem módosíthat semmit a telefonján, ezért vigyázzon rá. Beállíthatja a parancssorban, gépeléssel password=yaddayaddayadda vagy a paferafileserver.cfg fájlban a formátum használatával

{
  "password":"yaddayaddayadda"
}

Az Új mappa (o gyorsbillentyű) kérni fogja az új mappa nevét, amelyet az aktuális mappán belül kíván létrehozni.

A Rejtett fájlok megjelenítése (Hotkey i) átkapcsolja a pontokkal kezdődő fájlok és mappák megjelenítését, amit a Unix használ annak jelzésére, hogy ezek a fájlok általában nem lehetnek láthatók a felhasználó számára.

Az Egykattintásos letöltés (K gyorsbillentyű) bekapcsolásával azonnal letölthet egy fájlt, ha rákattint ahelyett, hogy a böngészőben jelenne meg.

Gyorsbillentyűk megjelenítése (Hotkey h) megmutatja, hogy mely billentyűk használhatók mappanézetben és diavetítés nézetben is.

A nagyítás (Gyorsbillentyű .) és a Kicsinyítés (Gyorsbillentyű ,) megváltoztatja a képernyőn látható minden méretét. Használja ezeket az oldal testreszabásához, ha a rendszer alapértelmezett méretei nem tetszenek.

A Fájl menü

A Fájl menü előugró ablaka

A Kiválasztás ide lehetőséggel kiválaszthatja az összes fájlt a korábban kiválasztott és mostani között. Nagyon praktikus helyettesítőként, hogy ne kelljen lecserélni a jobb klikk menüt a hivatkozások másolásához asztali számítógépen és mobilon egyaránt.

Az Összes kijelölése (a gyorsbillentyű) és a Semmilyennek kiválasztása (n gyorsbillentyű) magától értetődőek. Legyen óvatos, amikor használja őket az összes fájl törléséhez igazán törölni szeretné az összes fájlt.

A Küldés (G gyorsbillentyű) megnyit egy szkennelési ablakot, ahol láthatja a hálózaton lévő összes többi Pafera fájlkiszolgálót futtató eszközt.

Fájlok küldése másik szerverre

Vegye figyelembe, hogy minden eszköznek ugyanazon az alhálózaton kell lennie, és ugyanazon a porton kell futnia, tehát ha Ön a 192.168.0.100-as porton van, és az eszköz, amelyre küldeni próbál, a 192.168.1.100, akkor a lapolvasó nem érzékeli a másik eszközt. Természetesen bármikor bejelentkezhet az eszköz szerverére, és ehelyett a böngésző használatával tölthet fel fájlokat.

Az egyszerűség kedvéért minden más eszközre küldött fájl egy "Fogadott" a szerver gyökér alatt. Lehet, hogy ezt később módosítom, de jelenleg praktikus, ha minden új fájl ugyanabban a mappában jelenik meg, ahonnan később áthelyezheti őket a megfelelő helyre.

Az új fájl a Fogadott mappában

A Letöltés (l gyorsbillentyű), az átnevezés (r gyorsbillentyű), az áthelyezés (m gyorsbillentyű), a másolás (c gyorsbillentyű), a törlés (d gyorsbillentyű) és a végleges törlés (p) mindegyik képes több fájlon dolgozni, kivéve a letöltés mobilböngészőkön, ahol egyszerre csak egy fájlt tölthet le. Csak légy óvatos, mert a Végleges törlés valóban azt jelenti Állandó Töröl. A törlés gomb megérintése előtt mindig tároljon egy másolatot fontos fájljairól egy másik eszközön.

Az Undelete (u gyorsbillentyű) csak az egyszer törölt fájlokhoz használatos, és így a ".deleted" kiterjesztés. Azt nem lehet visszahozza a véglegesen törölt fájlokat. Ezek nem feszülnek. Továbbmentek. Ezek a fájlok már nincsenek meg. Ők volt akták.

A diavetítés használata

A diavetítés felülete. Az alján minden kattintható.

Az egyik legfontosabb funkció, amelyet az emberek mindig kérnek a fájlböngészőben, egy jó diavetítés. Ha körülbelül 6000 képet visz a fiáról a telefonján, hogy megmutassa véletlenszerű idegeneknek, nem nehéz megérteni, miért. ;) A legtöbb SMB-kliens nem rendelkezik kép-előnézetekkel vagy diavetítéssel, így az iPhone Files alkalmazással egy bizonyos kép keresése meglehetősen frusztráló.

A Pafera File Server diavetítés funkciója többféleképpen aktiválható:

  1. Kattintson egy kép miniatűrjére.
  2. Válassza a "Diavetítés" a rendszermenüből.
  3. Válassza a "Mély diavetítés" a rendszermenüből.
  4. Végezzen keresést vagy mély keresést a megjeleníteni kívánt fájlok kiválasztásához, majd majd kattintson az első kép miniatűrjére.

Függetlenül attól, hogy hogyan indítja el a diavetítést, a legfelső részén található egy törlés gomb az aktuális kép nevével, alul pedig egy eszköztár, amely véletlenszerűsítés, elforgatás, kilépés, előre és hátra funkciókat tartalmaz.

Ha egy bizonyos képszámra szeretne lépni, egyszerűen kattintson a kép pozíciójára az eszköztáron, írja be a kívánt számot, és lépjen tovább.

A kívánt szám kiválasztása

A diavetítés támogatja a csúsztatási mozdulatokat, amelyek tulajdonképpen az általam preferált módszer a telefonon történő navigáláshoz. Mindössze annyit kell tennie, hogy hüvelykujját enyhén balra csúsztatva ugorhat az előző képre, jobbra a következő képre, felfelé az aktuális kép törléséhez, vagy lefelé a diavetítésből való kilépéshez.

Ha azonban laptopot használ, vagy Bluetooth-billentyűzetet csatlakoztat a telefonhoz, a diavetítés használata még egyszerűbbé válik.

Balra nyíl Előző kép
Jobbra nyíl Következő kép
Felfelé nyíl Kép törlése
Lefelé mutató nyíl/Kilépés Kilépés a diavetítésből
r Véletlenszerű kép
g Ugrás a képszámra
q Forgassa el 90 fokkal az óramutató járásával ellentétes irányba
e Forgassa el 90 fokkal az óramutató járásával megegyezően

Konfiguráció

A Pafera File Server konfigurálható egy paferafileserver.cfg nevű JSON-fájlból, amely ugyanabban a mappában van, vagy a kulcs=érték formátumú parancssori argumentumokból. Ha mindkettő meg van adva, akkor a parancssori argumentumok felülírják a konfigurációs fájl beállításait.

Gyakori parancssor az

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

Így ha a Jim Pictures könyvtárát szeretné kiszolgálni az 5000-es porton lévő összes látogató számára, akkor a

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

Ha nem adja meg a serverroot-ot, akkor az alapértelmezés szerint a saját könyvtára lesz.

Ha nem adja meg az ip-t és a portot, az alapértelmezett érték 0.0.0.0:9999.

Ezenkívül a következő opciók is beírhatók a parancssorba bizonyos funkciók letiltásához még akkor is, ha a felhasználó rendelkezik a megfelelő jelszóval.

disabledelete
disablerename
disablemove
disablecopy
disablenewfolder
disabledelete
disablepermanentdelete
disablesend
disableupload

Az összes parancssori argumentum megadható egy paferafileserver.cfg nevű JSON-fájlban is az aktuális mappában, például

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

Kiválaszthatja az Ön számára legmegfelelőbb módszert.

Windows esetén gyakran a legegyszerűbb létrehozni egy parancsikont a végrehajtható fájlhoz, és a parancsikonban megadni az argumentumokat.

Az Android rendszeren futó Termux esetében a végrehajtható fájl elindításának legegyszerűbb módja, ha telepíti a Termux Widget alkalmazást az F-Droidból, és konfigurálja a parancssort a widget szkriptjén belül.

Jövőbeli tervek

További változtatásokat jelenleg nem tervezünk, mivel ez csak egy szórakoztató bevezető projekt volt, hogy eljátsszuk Rusttal, de ha valaki más

  1. Írjon Kotlin/Swift verziókat, hogy feldobja az alkalmazásboltokat
  2. Fordítsa le ezt az alkalmazást több nyelvre
  3. Hozzon létre különféle CSS-témákat
  4. Valósítson meg egy rsync-szerű algoritmust a biztonsági mentéshez és a visszaállításhoz
  5. Vagy bármi más, ami eszedbe jut

Mindenképpen szívesen fogadok bármilyen kiegészítést ehhez az egyszerű projekthez.

Mint mindig, most is remélem, hogy hasznosnak találja ezt az alkalmazást, és ha saját céljaira szeretné személyre szabni, műszaki tanácsadóként mindig rendelkezésre állok. Jó szórakozást!

A Szerzőről

Jim azóta programoz, amióta a 90-es években kapott egy IBM PS/2-t. A mai napig előszeretettel ír HTML-t és SQL-t kézzel, munkája során a hatékonyságra és a korrektségre helyezi a hangsúlyt.