Vols una presentació ràpida? Només cal que mireu el vídeo de dalt!
L'any passat vaig llançar una utilitat anomenada Servidor de fitxers Pafera . És una aplicació de consola escrita en Rust que executa un gestor de fitxers basat en web per als vostres dispositius, que permet compartir fitxers fàcilment amb qualsevol cosa que tingui un navegador web amb una pràctica funció de presentació de diapositives per mostrar les vostres fotos i icones shiba. Això vol dir que pots anar a una festa i deixar que 200 amics exploren les teves fotos de vacances recents al teu telèfon, al seu moment i ritme.
Més tard, a mesura que van arribar diversos suggeriments i patrons d'ús d'amics i desconeguts d'Internet, vaig començar a afegir més i més funcions. Ara és capaç de sincronitzar arbres de directoris sencers, transcodificar fitxers multimèdia, obrir fitxers amb aplicacions del sistema operatiu natiu i sincronitzar fitxers automàticament als vostres dispositius.
Tanmateix, al ser una aplicació de consola, sempre hi havia un gran problema que impedia que fos una solució universal per a tots els vostres dispositius:
Les aplicacions de consola no es poden executar a iOS, és a dir, no podeu executar el servidor de fitxers Pafera a iPhones ni iPads...
Fins ara.
Vaig tenir una estona lliure durant les vacances de Nadal mentre Montenegro celebrava les festes, així que vaig experimentar amb l'escriptura d'una aplicació complementària multiplataforma a Flutter/Dart que us permetria navegar fàcilment pels servidors des del vostre telèfon. D'aquesta manera, els meus amics menys inclinats a la tecnologia només podrien prémer dos botons i connectar-se als meus servidors.
Durant el camí, vaig descobrir que podríeu utilitzar Dart per executar el vostre propi servidor web en dispositius iOS i vaig pensar...
Ei! Per què no implemento el servidor de fitxers al Dart!
Així que dues setmanes més tard, l'aplicació està aquí.
Ara, el rendiment és terriblement lent en comparació amb la versió Rust. El servidor Rust pot atendre unes 40.000 sol·licituds per segon...
Mentre que la versió Dart només pot servir uns 400...
Però l'important és que funcioni...
i s'instal·la als iPhones!
A causa d'un error a la biblioteca PDFx amb les versions recents de Flutter, he hagut de deixar d'utilitzar icones boniques per a tots els botons ja que apareixien com a línies negres lletjos.
Tanmateix, el funcionament bàsic segueix sent el mateix.
Un cop tothom estigui connectat a la mateixa xarxa WiFi o al punt d'accés del telèfon, només cal que feu clic a la icona de l'aplicació, trieu la carpeta que voleu compartir i toqueu "Iniciar servidor".
A continuació, feu clic al botó del codi QR, deixeu que els vostres amics l'escanein i, aleshores, podran navegar per la vostra carpeta amb els seus telèfons, fins i tot transmetre pel·lícules des del vostre telèfon directament als seus telèfons.
Si el vostre amic utilitza un ordinador portàtil o d'escriptori, tampoc no hi ha cap problema. Només cal que introduïu l'URL que es mostra a sobre del codi QR al seu dispositiu i podran fer exactament el mateix.
Si no esteu executant a iOS o Android, tampoc no hi ha cap problema. Les aplicacions Flutter funcionen bé a OSX, Windows i Linux, de manera que obtindreu la mateixa funcionalitat, i encara més si instal·leu rsync, FFMpeg i ImageMagick al vostre sistema perquè l'utilitzi l'aplicació.
Hi ha bastants funcions avançades a més de compartir fitxers senzills, així que aquí us donaré una visió general ràpida.
El nom d'amfitrió és el que es mostra als altres dispositius quan fan clic a "Cerca altres servidors". Podeu utilitzar-lo per distingir ràpidament un dispositiu d'un altre si compartiu un parell de dispositius alhora.
La carpeta és la carpeta del sistema de fitxers que realment estàs compartint. Podeu fer clic a "Utilitza la carpeta de documents" per defecte a Documents/compartit, o podeu fer clic a "Tria carpeta" per triar una altra carpeta. És possible que també hàgiu de fer clic a "Utilitza la carpeta de documents" si l'iOS no actualitza correctament la configuració de l'aplicació quan es reprèn de la suspensió.
Utilitza la IP actual detecta automàticament l'IP WiFi actual del teu dispositiu. Igual que amb "Utilitza la carpeta de documents" fes-lo servir si iOS no actualitza l'aplicació correctament i encara utilitza una IP d'una xarxa WiFi anterior.
"Comparteix a totes les interfícies" estableix la IP pública a 0.0.0.0, el que significa que tothom en qualsevol cosa a què estigueu connectat podreu veure el vostre servidor. Pràctic en ordinadors de sobretaula amb més d'una connexió, però aneu amb compte amb l'ús en llocs públics.
"Comença a compartir" executarà el servidor i obrirà la pàgina d'inici perquè la gestioneu. Si torneu a fer clic, aturarà el servidor i mantindrà els vostres fitxers segurs.
"Carrega la darrera configuració" i "Desa la configuració actual" fer exactament el que diuen. La vostra configuració s'emmagatzemarà a Documents/paferafileserver.cfg igual que la versió Rust de la consola.
Les diferents opcions de contrasenya estan allà per oferir diferents nivells d'accés a diferents persones.
Normalment, tothom pot veure els vostres fitxers només connectant-vos al vostre servidor, però si marqueu "Activa fitxers privats" a sota d'aquests, ningú podrà veure els vostres fitxers sense la contrasenya de lectura.
La contrasenya d'escriptura s'utilitza per carregar, moure, copiar o suprimir fitxers. Sense això, ningú més pot fer res al vostre sistema a més de veure els vostres fitxers.
La contrasenya de shell no serveix per a l'aplicació mòbil, però és molt útil en sistemes operatius d'escriptori i Termux a Android. Et permet executar ordres del sistema arbitrari, que el fan molt potent i molt perillós alhora. Aquesta funció està desactivada de manera predeterminada i tots dos heu d'introduir una contrasenya de shell i comproveu "Activa les ordres de l'intèrpret d'ordres" a continuació per utilitzar-lo.
Les diferents opcions d'activació i de desactivació us permeten triar què poden fer altres persones al vostre sistema fins i tot quan ja tenen la contrasenya correcta. Aquestes anul·len totes les altres opcions, de manera que si desactiveu la còpia de fitxers, ningú, ni tan sols vosaltres mateixos, podrà copiar fitxers.
L'opció especial "Desactiva la comprovació de clau SSH" és per a persones com jo que deambulen constantment mentre sincronitzen fitxers d'anada i tornada entre diferents dispositius. Normalment, SSH demanarà confirmació quan es connecti a un sistema l'adreça IP del qual hagi canviat, fins i tot si la identitat d'aquest sistema ja es coneix. Aquesta opció us permetrà sincronitzar automàticament fitxers a diferents xarxes sense baixar a la consola per confirmar les connexions SSH. Feu-lo servir amb cura quan utilitzeu xarxes que no us controleu.
A diferència de l'execució en Termux o en un entorn d'escriptori, les aplicacions iOS i Android no tenen accés a un shell, rsync, ImageMagick o FFMpeg, de manera que totes les funcions avançades de sincronització i transcodificació estan desactivades.
Com que els sistemes operatius mòbils poden matar aplicacions en segon pla en qualsevol moment, les tasques automàtiques programades també estan desactivades.
Hi ha solucions possibles per a tots aquests aspectes, però el temps necessari per integrar aquestes funcions està més enllà de la meva intenció en aquest moment. Si algú està interessat a pagar-me per afegir-los, veurem què passa. 😁
Com amb tots els meus projectes, el codi font està allotjat a Codeberg i pot ser-ho trobat aquí .
Per als binaris precompilats, podeu navegueu pel directori de llançaments aquí ...
O simplement feu clic als enllaços següents:
A causa dels requisits de signatura d'Apple, els usuaris d'iOS i OSX han d'esperar que l'aplicació estigui disponible a l'App Store, o bé descarregar el codi font i compilar la vostra pròpia versió per als vostres dispositius.
Com que es tracta d'una versió nova, estic segur que hi haurà molts errors i comportaments estranys en diversos sistemes. Si voleu fer una prova beta d'aquesta aplicació, envieu-me un correu electrònic amb el vostre dispositiu i la versió del sistema operatiu i us faré configurar a TestFlight.
Distribuir una aplicació Flutter és realment molt més complicat que la versió Rust, on només carrego un únic executable i acabo amb tot, així que si us plau, entengueu quan Apple triga tres setmanes a comprovar la meva aplicació i permetre-la entrar a iOS. App Store. Les coses haurien de ser molt més fàcils quan Apple hagi de permetre aplicacions de tercers segons la sentència de la UE.
Com sempre, espero que aquesta aplicació us sigui útil, i si voleu personalitzar-la per als vostres propòsits, estic sempre disponible com a consultor tècnic. Diverteix-te!
Sobre l'autor |
|
![]() |
Jim ha estat programant des que va recuperar un IBM PS/2 durant els anys 90. A dia d'avui, encara prefereix escriure HTML i SQL a mà, i se centra en l'eficiència i la correcció en el seu treball. |