Želite brzi uvod? Samo pogledajte video iznad!
Prošle godine, objavio sam alat pod nazivom Pafera File Server . To je konzolna aplikacija napisana u Rustu koja pokreće web-temeljeni upravitelj datoteka za vaše uređaje, omogućujući jednostavno dijeljenje datoteka s bilo čim što ima web preglednik i praktičnu značajku prezentacije za prikazivanje vaših fotografija i shiba ikona. To znači da možete otići na zabavu i pustiti 200 prijatelja da pregledavaju vaše nedavne fotografije s odmora na vlastitim telefonima, u svoje vrijeme i tempu.
Nakon toga, kako su razne sugestije i obrasci korištenja dolazili od prijatelja i nasumičnih internetskih stranaca, počeo sam dodavati sve više i više značajki. Sada je sposoban rsyncati cijele direktorijske stabla, transkodirati medijske datoteke, otvarati datoteke s aplikacijama native operativnog sustava, i automatski sinkronizirati datoteke između vaših uređaja.
Međutim, kao konzolna aplikacija, uvijek je postojao jedan veliki problem koji je sprečavao da postane univerzalno rješenje za sve vaše uređaje:
Konzolne aplikacije ne mogu raditi na iOS-u, što znači da niste mogli pokrenuti Pafera poslužitelj datoteka na iPhone-ima niti iPad-ima...
Do sada.
Imao sam malo slobodnog vremena tijekom božićnih praznika dok je Crna Gora slavila blagdane, pa sam eksperimentirao s pisanjem multiplatformske aplikacije u Flutteru/Dartu koja bi vam omogućila lako pregledavanje poslužitelja s vašeg telefona. Na taj način, moji prijatelji koji nisu skloni tehnologiji mogli bi samo pritisnuti dva gumba i povezati se na moje poslužitelje.
Usput, shvatio sam da zapravo možete koristiti Dart za pokretanje vlastitog web poslužitelja na iOS uređajima, i pomislio sam...
Hej! Zašto jednostavno ne implementiram poslužitelj datoteka u Dartu umjesto!
Dakle, dva tjedna kasnije, aplikacija je ovdje.
Sada je performansa strašno spora u usporedbi s Rust verzijom. Rust poslužitelj može obraditi oko 40.000 zahtjeva u sekundi...
Dok Dart verzija može obraditi samo oko 400....
Ali važno je da radi...
i instalira se na iPhone-ima!
Zbog greške u PDFx biblioteci s nedavnim verzijama Flutter-a, morao sam prestati koristiti lijepe ikone za sve gumbe jer su se prikazivale kao ružne crne linije.
Međutim, osnovna operacija ostaje ista.
Jednom kada su svi povezani na istu WiFi mrežu ili hotspot vašeg telefona, samo kliknite na ikonu aplikacije, odaberite mapu koju želite dijeliti i dodirnite "Pokreni poslužitelj".
Zatim kliknite na gumb QR kod, neka vaši prijatelji skeniraju, a zatim mogu sretno pregledavati vašu mapu na svojim telefonima, čak i streamati filmove s vašeg telefona izravno na njihove telefone.
Ako vaš prijatelj koristi prijenosno ili stolno računalo, to također nije problem. Samo upišite URL prikazan iznad QR koda na njihovom uređaju i mogu učiniti točno isto.
Ako ne radite na iOS-u ili Androidu, to također nije problem. Flutter aplikacije dobro rade na OSX-u, Windows-u i Linux-u, tako da ćete dobiti istu funkcionalnost, pa čak i više ako instalirate rsync, FFMpeg i ImageMagick na svom sustavu za korištenje aplikacije.
Postoji prilično mnogo naprednih značajki osim jednostavnog dijeljenja datoteka, pa ću ovdje dati kratak pregled.
Hostname je ono što se prikazuje drugim uređajima kada kliknu na "Traži druge poslužitelje". Možete ga koristiti za brzo razlikovanje jednog uređaja od drugog ako dijelite nekoliko uređaja u isto vrijeme.
Mapa je datotečna mapa koju stvarno dijelite. Možete kliknuti "Koristi mape dokumenata" za zadano u Dokumentima/podijeljeno, ili možete kliknuti "Odaberi mapu" da odaberete drugu mapu. Možda ćete također morati kliknuti na "Koristi mape dokumenata" ako iOS ne osvježi pravilno postavke aplikacije kada se ponovo pokrene iz stanja mirovanja.
Koristi trenutni IP automatski otkriva trenutni WiFi IP vašeg uređaja. Kao i s "Koristi mape dokumenata", koristite ga ako iOS ne osvježi aplikaciju pravilno i još uvijek koristi IP iz prethodne WiFi mreže.
"Dijeli na svim sučeljima" postavlja javni IP na 0.0.0.0, što znači da svi na bilo čemu na što ste povezani moći će vidjeti vaš poslužitelj. Korisno na stolnim računalima s više veza, ali budite oprezni s korištenjem na javnim mjestima.
"Pokreni dijeljenje" će pokrenuti poslužitelj i otvoriti početnu stranicu za upravljanje. Ponovno klikanje će zaustaviti poslužitelj i zadržati vaše datoteke sigurno.
"Učitaj posljednje postavke" i "Spremi trenutne postavke" rade točno ono što kažu. Vaše postavke će biti pohranjene u Dokumentima/paferafileserver.cfg baš kao u konzolnoj Rust verziji.
Različite opcije lozinki su tu da daju različitim ljudima različite razine pristupa.
Obično, svi mogu vidjeti vaše datoteke samo povezivanjem na vaš poslužitelj, ali ako označite "Omogući privatne datoteke" ispod ovih, tada nitko neće moći vidjeti vaše datoteke bez lozinke za čitanje.
Lozinka za pisanje se koristi za učitavanje, premještanje, kopiranje ili brisanje datoteka. Bez ovoga, nitko drugi ne može učiniti ništa vašem sustavu osim pregledavati vaše datoteke.
Lozinka za ljusku je beskorisna na mobilnoj aplikaciji, ali je vrlo korisna na radnim površinama i Termuxu na Androidu. Omogućuje vam pokretanje proizvoljnih sistemskih naredbi, što je čini vrlo moćnom i vrlo opasnom u isto vrijeme. Ova značajka je prema zadanim postavkama onemogućena, i morate unijeti lozinku za ljusku i Provjerite "Omogući shell naredbe" ispod kako biste ga koristili.
Različite opcije omogućavanja i onemogućavanja omogućuju vam da odaberete što drugi mogu raditi s vašim sustavom, čak i kada već imaju ispravnu lozinku. Ove opcije imaju prednost nad svim ostalim opcijama, tako da ako onemogućite kopiranje datoteka, nitko – pa čak ni vi sami – neće moći kopirati datoteke. Posebna opcija "Onemogući SSH Keycheck" namijenjena je ljudima poput mene koji stalno putuju dok sinkroniziraju datoteke između različitih uređaja. Obično će SSH zatražiti potvrdu prilikom povezivanja s sustavom čija se IP adresa promijenila, čak i ako je identitet tog sustava već poznat. Ova opcija omogućit će vam automatsko sinkroniziranje datoteka na različitim mrežama bez potrebe da se spustite u konzolu radi potvrde SSH veza. Koristite to s oprezom na mrežama kojima ne kontrolirate sami. Onemogućene značajke na mobilnim uređajima
Za razliku od rada u Termuxu ili radnom okruženju na računalu, iOS i Android aplikacije nemaju pristup shellu, rsyncu, ImageMagicku ili FFMpeg-u, tako da su sve napredne funkcije sinkronizacije i transkodiranja onemogućene.
Postoje mogući zaobiđeni načini za sve ove aspekte, ali vrijeme potrebno za integraciju ovih značajki premašuje moje namjere u ovom trenutku. Ako je netko zainteresiran da me plati za dodavanje ovih značajki, onda ćemo vidjeti što će se dogoditi. 😁
Preuzimanja i izvornik
Kao i kod svih mojih projekata, izvorni kod je hostan na Codebergu i može se pronaći ovdje.
Ili jednostavno kliknite na poveznice ispod: Android (ARM64) .
Android (ARM) Android (x86-64) ...
Linux (x86-64 AppImage)
Kao i uvijek, nadam se da ćete pronaći ovu aplikaciju korisnom, a ako želite prilagoditi je za vlastite svrhe, uvijek sam dostupna kao tehnički konzultant. Zabavite se!
Budući da je ovo novo izdanje, siguran sam da će biti mnogo grešaka i čudnog ponašanja na raznim sustavima. Ako želite testirati ovu aplikaciju, pošaljite mi e-mail s vašim uređajem i verzijom operativnog sustava, a ja ću vas postaviti na TestFlight.
Distribucija Flutter aplikacije zapravo je mnogo kompliciranija od verzije u Rustu, gdje jednostavno učitam jedan izvršni fajl i završim cijelu stvar, pa vas molim za razumijevanje kada će mi trebati tri tjedna da Apple pregleda moju aplikaciju i omogući je u iOS App Store-u. Trebalo bi biti mnogo lakše kada Apple bude prisiljen dopuštati aplikacije trećih strana prema presudi EU.
Kao i uvijek, nadam se da ćete ovu aplikaciju smatrati korisnom, a ako želite prilagoditi aplikaciju za vlastite potrebe, uvijek sam dostupan kao tehnički konzultant. Zabavite se!
O autoru |
|
![]() |
Jim programira još otkako je dobio IBM PS/2 tijekom 90-ih. Do danas radije piše HTML i SQL ručno te se usmjerava na učinkovitost i točnost u svom radu. |