Chcete rychlý úvod? Stačí se podívat na video výše!
Minulý rok jsem vydal nástroj s názvem Souborový server Pafera . Jedná se o konzolovou aplikaci napsanou v Rustu, která spouští webového správce souborů pro vaše zařízení a umožňuje snadné sdílení souborů s čímkoli, co má webový prohlížeč, s praktickou funkcí prezentace pro předvedení vašich fotografií a ikon Shiba. To znamená, že můžete jít na večírek a nechat 200 přátel, aby si prohlíželi vaše nedávné fotografie z dovolené na svých vlastních telefonech, ve svém vlastním čase a tempu.
Později, když přicházely různé návrhy a vzorce použití od přátel a náhodných internetových neznámých lidí, začal jsem přidávat další a další funkce. Nyní je schopen synchronizovat celé adresářové stromy, překódovat mediální soubory, otevírat soubory pomocí nativních aplikací operačního systému a automaticky synchronizovat soubory mezi vašimi zařízeními.
Jako konzolová aplikace však vždy existoval jeden velký problém, který bránil tomu, aby se stala univerzálním řešením pro všechna vaše zařízení:
Aplikace konzoly nelze spustit na iOS, což znamená, že nemůžete spustit souborový server Pafera na iPhonech ani iPadech...
Až do teď.
Měl jsem nějaký volný čas o vánočních prázdninách, když Černá Hora slavila svátky, a tak jsem experimentoval s napsáním multiplatformní doprovodné aplikace ve Flutter/Dart, která by vám umožnila snadno procházet servery z telefonu. Tímto způsobem mohli moji méně technicky založení přátelé stisknout dvě tlačítka a připojit se k mým serverům.
Cestou jsem přišel na to, že byste mohli skutečně použít Dart ke spuštění vlastního webového serveru na iOS zařízeních, a myslel jsem...
Hej! Proč místo toho neimplementuji souborový server v Dartu!
Takže o dva týdny později je aplikace tady.
Nyní je výkon ve srovnání s verzí Rust strašně pomalý. Server Rust dokáže obsloužit asi 40 000 požadavků za sekundu...
Zatímco verze Dart může sloužit pouze asi 400....
Ale hlavní je, že to funguje...
a nainstaluje se na iPhone!
Kvůli chybě v knihovně PDFx s posledními verzemi Flutter jsem musel přestat používat hezké ikony pro všechna tlačítka, protože se jevily jako ošklivé černé čáry.
Základní operace však zůstává stejná.
Jakmile se všichni připojí ke stejné WiFi síti nebo k hotspotu vašeho telefonu, stačí kliknout na ikonu aplikace, vybrat složku, kterou chcete sdílet, a klepnout na „Spustit server“.
Poté klikněte na tlačítko s QR kódem, nechte jej naskenovat své přátele, a pak mohou vesele procházet vaši složku na svých telefonech a dokonce streamovat filmy z vašeho telefonu přímo do svých telefonů.
Pokud váš přítel používá notebook nebo stolní počítač, není to žádný problém. Stačí zadat adresu URL zobrazenou nad QR kódem na jejich zařízení a oni mohou udělat přesně to samé.
Pokud neběžíte na iOS nebo Androidu, ani to není problém. Flutter Apps fungují na OSX, Windows a Linux v pohodě, takže získáte stejnou funkcionalitu a ještě více, pokud do svého systému nainstalujete rsync, FFMpeg a ImageMagick, aby ji aplikace mohla používat.
Kromě jednoduchého sdílení souborů existuje několik pokročilých funkcí, takže zde uvedu stručný přehled.
Název hostitele je to, co se zobrazí ostatním zařízením, když kliknou na "Vyhledat jiné servery". Můžete jej použít k rychlému rozlišení jednoho zařízení od druhého, pokud sdílíte několik zařízení současně.
Složka je složka systému souborů, kterou ve skutečnosti sdílíte. Můžete kliknout na "Použít složku dokumentů" pro výchozí nastavení v Dokumentech/sdílených, nebo můžete kliknout na "Vybrat složku" vybrat jinou složku. Možná budete muset kliknout na "Použít složku dokumentů" pokud iOS správně neobnoví nastavení aplikace při probuzení z režimu spánku.
Použít aktuální IP automaticky zjistí aktuální IP WiFi vašeho zařízení. Stejně jako u "Použít složku dokumentů" použijte jej, pokud iOS aplikaci správně neaktualizuje a stále používá IP z předchozí sítě WiFi.
"Sdílet na všech rozhraních" nastaví veřejnou IP na 0.0.0.0, což znamená, že každý na čemkoli, k čemu jste připojeni, bude moci vidět váš server. Hodí se na stolních počítačích s více než jedním připojením, ale buďte opatrní při používání na veřejných místech.
"Zahájit sdílení" spustí server a otevře domovskou stránku, kterou můžete spravovat. Dalším kliknutím na něj zastavíte server a vaše soubory zůstanou v bezpečí.
"Načíst poslední nastavení" a "Uložit aktuální nastavení" dělat přesně to, co říkají. Vaše nastavení budou uložena v Documents/paferafileserver.cfg stejně jako konzolová verze Rust.
Různé možnosti hesel umožňují různým lidem různé úrovně přístupu.
Za normálních okolností může každý vidět vaše soubory pouhým připojením k vašemu serveru, ale pokud zaškrtnete políčko "Povolit soukromé soubory" pod těmito, pak nikdo nebude moci vidět vaše soubory bez hesla pro čtení.
Heslo pro zápis se používá k nahrávání, přesouvání, kopírování nebo odstraňování souborů. Bez toho nemůže nikdo jiný s vaším systémem dělat nic jiného než prohlížet vaše soubory.
Heslo shellu je v mobilní aplikaci k ničemu, ale je velmi užitečné na operačních systémech pro stolní počítače a Termux na Androidu. Umožňuje vám spouštět libovolné systémové příkazy, díky kterým je velmi výkonný a zároveň velmi nebezpečný. Tato funkce je ve výchozím nastavení zakázána a oba musíte zadat heslo prostředí a zaškrtněte "Povolit příkazy shellu" níže.
Různé možnosti povolení a zakázání vám umožňují vybrat, co mohou s vaším systémem dělat ostatní lidé i když už mají správné heslo. Tyto možnosti přepíší všechny ostatní možnosti, takže pokud zakážete kopírování souborů, nikdo – ani vy sami – nebude moci kopírovat soubory.
Speciální možnost "Zakázat kontrolu klíče SSH" je pro lidi jako já, kteří se neustále potulují a synchronizují soubory tam a zpět mezi různými zařízeními. SSH obvykle požádá o potvrzení při připojování k systému, jehož IP adresa se změnila, i když identita tohoto systému je již známa. Tato možnost vám umožní automaticky synchronizovat soubory v různých sítích, aniž byste museli spouštět konzoli a potvrzovat připojení SSH. Používejte jej opatrně v sítích, které sami neovládáte.
Na rozdíl od běhu v Termuxu nebo desktopovém prostředí nemají aplikace pro iOS a Android přístup k shellu, rsync, ImageMagick nebo FFMpeg, takže všechny pokročilé funkce synchronizace a překódování jsou zakázány.
Protože mobilní operační systémy mohou kdykoli ukončit aplikace na pozadí, jsou také zakázány časované automatické úlohy.
Pro všechny tyto aspekty existují možná řešení, ale čas potřebný k integraci těchto funkcí je v tuto chvíli mimo můj záměr. Pokud má někdo zájem zaplatit mi za jejich přidání, pak uvidíme, co se stane. 😁
Stejně jako u všech mých projektů je zdrojový kód hostován na Codeberg a může být najdete zde .
Pro předkompilované binární soubory můžete procházet adresář vydání zde ...
Nebo jednoduše klikněte na odkazy níže:
Kvůli požadavkům na podpis Apple musí uživatelé iOS a OSX počkat, až bude aplikace dostupná v App Store, nebo si stáhnout zdrojový kód a zkompilovat si vlastní verzi pro vaše zařízení.
Jelikož se jedná o nové vydání, jsem si jist, že na různých systémech bude spousta chyb a podivného chování. Pokud byste pro mě chtěli otestovat beta verzi této aplikace, pošlete mi prosím e-mail s verzí vašeho zařízení a operačního systému a já vám zajistím nastavení pro TestFlight.
Distribuce aplikace Flutter je ve skutečnosti mnohem komplikovanější než verze Rust, kde stačí nahrát jeden spustitelný soubor a vše je hotovo, takže mějte prosím pochopení, až Apple zkontroluje moji aplikaci a povolí ji do systému iOS tři týdny. App Store. Věci by měly být mnohem jednodušší, když Apple musí povolit aplikace třetích stran podle rozhodnutí EU.
Jako vždy doufám, že pro vás bude tato aplikace užitečná, a pokud si ji chcete přizpůsobit pro své vlastní účely, jsem vždy k dispozici jako technický poradce. Bavte se!
O autorovi |
|
![]() |
Jim programuje od doby, kdy v 90. letech získal IBM PS/2. Dodnes stále preferuje ruční psaní HTML a SQL a ve své práci se zaměřuje na efektivitu a korektnost. |