Chcete rýchly úvod? Stačí si pozrieť video vyššie!
Minulý rok som vydal nástroj s názvom Súborový server Pafera . Ide o konzolovú aplikáciu napísanú v jazyku Rust, ktorá spúšťa webového správcu súborov pre vaše zariadenia a umožňuje jednoduché zdieľanie súborov s čímkoľvek, čo má webový prehliadač, s praktickou funkciou prezentácie na predvádzanie vašich fotografií a ikon Shiba. To znamená, že môžete ísť na večierok a nechať 200 priateľov, aby si prezeralo vaše nedávne fotografie z dovolenky na vlastných telefónoch, vo svojom vlastnom čase a tempom.
Neskôr, keď prichádzali rôzne návrhy a vzory používania od priateľov a náhodných internetových neznámych ľudí, začal som pridávať ďalšie a ďalšie funkcie. Teraz dokáže synchronizovať celé adresárové stromy, prekódovať mediálne súbory, otvárať súbory pomocou natívnych aplikácií operačného systému a automaticky synchronizovať súbory medzi vašimi zariadeniami.
Keďže ide o konzolovú aplikáciu, vždy tu bol jeden veľký problém, ktorý jej bránil stať sa univerzálnym riešením pre všetky vaše zariadenia:
Aplikácie konzoly nie je možné spustiť v systéme iOS, čo znamená, že súborový server Pafera nemôžete spustiť na zariadeniach iPhone ani iPad...
Až doteraz.
Počas vianočných prázdnin, keď Čierna Hora oslavovala sviatky, som mal nejaký voľný čas, a tak som experimentoval s napísaním multiplatformovej sprievodnej aplikácie vo Flutter/Dart, ktorá by vám umožnila jednoducho prehliadať servery z telefónu. Takto mohli moji menej technicky založení priatelia stlačiť dve tlačidlá a pripojiť sa k mojim serverom.
Po ceste som prišiel na to, že by ste mohli skutočne použiť Dart na spustenie vlastného webového servera na zariadeniach so systémom iOS, a pomyslel som si...
Ahoj! Prečo namiesto toho neimplementujem súborový server v Dart!
Takže o dva týždne neskôr je aplikácia tu.
Teraz je výkon v porovnaní s verziou Rust strašne pomalý. Server Rust dokáže obslúžiť približne 40 000 požiadaviek za sekundu...
Zatiaľ čo verzia Dart môže slúžiť len asi 400....
Ale dôležité je, že to funguje...
a nainštaluje sa na iPhone!
Kvôli chybe v knižnici PDFx s najnovšími verziami Flutter som musel prestať používať pekné ikony pre všetky tlačidlá, pretože sa zobrazovali ako škaredé čierne čiary.
Základná operácia však zostáva rovnaká.
Keď sú všetci pripojení k rovnakej sieti Wi-Fi alebo k hotspotu vášho telefónu, stačí kliknúť na ikonu aplikácie, vybrať priečinok, ktorý chcete zdieľať, a klepnúť na „Spustiť server“.
Potom kliknite na tlačidlo s QR kódom, nechajte svojich priateľov naskenovať ho a potom môžu veselo prehliadať váš priečinok na svojich telefónoch a dokonca streamovať filmy z vášho telefónu priamo do svojich telefónov.
Ak váš priateľ používa prenosný alebo stolný počítač, nie je to žiadny problém. Stačí zadať adresu URL zobrazenú nad kódom QR na ich zariadení a môžu urobiť presne to isté.
Ak nepoužívate systém iOS alebo Android, ani to nie je problém. Flutter Apps fungujú na OSX, Windows a Linux v pohode, takže získate rovnakú funkčnosť a ešte viac, ak si do svojho systému nainštalujete rsync, FFMpeg a ImageMagick, aby ju aplikácia mohla používať.
Okrem jednoduchého zdieľania súborov existuje pomerne málo pokročilých funkcií, takže tu uvediem rýchly prehľad.
Názov hostiteľa je to, čo sa zobrazí iným zariadeniam, keď kliknú na „Vyhľadať iné servery“. Môžete ho použiť na rýchle rozlíšenie jedného zariadenia od druhého, ak zdieľate niekoľko zariadení súčasne.
Priečinok je priečinok systému súborov, ktorý skutočne zdieľate. Môžete kliknúť na položku "Použiť priečinok dokumentov" pre predvolené nastavenie v časti Dokumenty/zdieľané, alebo môžete kliknúť na položku "Vybrať priečinok" na výber iného priečinka. Možno budete musieť kliknúť na položku "Použiť priečinok dokumentov" ak systém iOS pri prebudení z režimu spánku správne neobnoví nastavenia aplikácie.
Použiť aktuálnu IP automaticky zistí aktuálnu IP WiFi vášho zariadenia. Rovnako ako v prípade "Použiť priečinok dokumentov" použite ho, ak systém iOS neaktualizuje aplikáciu správne a stále používa adresu IP z predchádzajúcej siete WiFi.
"Zdieľať na všetkých rozhraniach" nastaví verejnú IP na 0.0.0.0, čo znamená, že všetci na všetkom, s čím ste pripojení, bude môcť vidieť váš server. Praktické na stolných počítačoch s viac ako jedným pripojením, ale buďte opatrní pri používaní na verejných miestach.
"Spustiť zdieľanie" spustí server a otvorí domovskú stránku, ktorú môžete spravovať. Opätovným kliknutím naň zastavíte server a vaše súbory budú v bezpečí.
"Načítať posledné nastavenia" a "Uložiť aktuálne nastavenia" urobte presne to, čo hovoria. Vaše nastavenia budú uložené v Documents/paferafileserver.cfg rovnako ako konzolová verzia Rust.
Rôzne možnosti hesiel umožňujú rôznym ľuďom rôzne úrovne prístupu.
Za normálnych okolností môže každý vidieť vaše súbory iba po pripojení k vášmu serveru, ale ak začiarknete políčko „Povoliť súkromné súbory“ nižšie, potom nikto nebude môcť vidieť vaše súbory bez hesla na prečítanie.
Heslo na zápis sa používa na nahrávanie, presúvanie, kopírovanie alebo odstraňovanie súborov. Bez toho nikto iný nemôže robiť nič s vaším systémom okrem prezerania vašich súborov.
Heslo shellu je v mobilnej aplikácii zbytočné, ale je veľmi užitočné v operačných systémoch pre stolné počítače a v systéme Termux v systéme Android. Umožňuje vám spúšťať ľubovoľné systémové príkazy, vďaka ktorým je veľmi výkonný a zároveň veľmi nebezpečný. Táto funkcia je predvolene vypnutá a obaja musíte zadať heslo shellu a zaškrtnite "Povoliť príkazy shellu" nižšie.
Rôzne možnosti aktivácie a deaktivácie vám umožňujú vybrať si, čo môžu s vaším systémom robiť iní ľudia aj keď už majú správne heslo. Tieto prepíšu všetky ostatné možnosti, takže ak zakážete kopírovanie súborov, nikto – ani vy sami – nebudete môcť kopírovať súbory.
Špeciálna možnosť "Zakázať kontrolu kľúča SSH" je pre ľudí ako ja, ktorí sa neustále potulujú a synchronizujú súbory tam a späť medzi rôznymi zariadeniami. SSH zvyčajne požiada o potvrdenie pri pripájaní k systému, ktorého IP adresa sa zmenila, aj keď identita tohto systému je už známa. Táto možnosť vám umožní automaticky synchronizovať súbory v rôznych sieťach bez toho, aby ste museli prejsť do konzoly a potvrdiť pripojenia SSH. Používajte ho opatrne v sieťach, ktoré sami neovládate.
Na rozdiel od spustenia v prostredí Termux alebo desktopu, aplikácie pre iOS a Android nemajú prístup k shellu, rsync, ImageMagick alebo FFMpeg, takže všetky pokročilé funkcie synchronizácie a prekódovania sú vypnuté.
Pretože mobilné operačné systémy môžu kedykoľvek zabiť aplikácie na pozadí, sú tiež zakázané časované automatické úlohy.
Pre všetky tieto aspekty existujú možné riešenia, ale čas potrebný na integráciu týchto funkcií momentálne presahuje môj zámer. Ak má niekto záujem zaplatiť mi za ich pridanie, potom uvidíme, čo sa stane. 😁
Ako pri všetkých mojich projektoch, zdrojový kód je umiestnený na Codeberg a môže byť nájdete tu .
Pre predkompilované binárne súbory môžete prezrite si adresár vydania tu ...
Alebo jednoducho kliknite na odkazy nižšie:
Kvôli požiadavkám na podpisovanie Apple musia používatelia iOS a OSX počkať, kým bude aplikácia dostupná v App Store, alebo si stiahnuť zdrojový kód a zostaviť si vlastnú verziu pre svoje zariadenia.
Keďže ide o nové vydanie, som si istý, že na rôznych systémoch bude veľa chýb a zvláštne správanie. Ak by ste chceli túto aplikáciu otestovať vo verzii beta, pošlite mi e-mail s verziou vášho zariadenia a operačného systému a ja vám zabezpečím nastavenie pre TestFlight.
Distribúcia aplikácie Flutter je v skutočnosti oveľa komplikovanejšia ako verzia Rust, kde len nahrám jeden spustiteľný súbor a celú vec dokončím, takže buďte pochopiteľní, keď Apple skontroluje moju aplikáciu a povolí ju do iOS troch týždňov. App Store. Veci by mali byť oveľa jednoduchšie, keď je spoločnosť Apple povinná povoliť aplikácie tretích strán podľa rozhodnutia EÚ.
Ako vždy, dúfam, že túto aplikáciu považujete za užitočnú, a ak si ju chcete prispôsobiť pre svoje vlastné účely, som vždy k dispozícii ako technický konzultant. Bavte sa!
O autorovi |
|
![]() |
Jim sa programovaniu venuje od doby, keď v 90. rokoch dostal IBM PS/2. Dodnes stále preferuje ručné písanie HTML a SQL a pri svojej práci sa zameriava na efektivitu a korektnosť. |