Il nuovo modo per condividere facilmente i file da un iPhone

Il file server Pafera è ora disponibile per iOS!
2024-01-20 16:39:38
👁️ 1040
💬 0

Vuoi una rapida introduzione? Guarda il video qui sopra!

Contenuto

  1. Introduzione
  2. La nuova app di condivisione file Flutter
  3. Utilizzo dell'app
  4. Funzionalità avanzate
  5. Funzionalità disabilitate su dispositivi mobili
  6. Download e codice sorgente
  7. Candidati per diventare un Beta Tester

Introduzione

Il file server Pafera in esecuzione in Android Termux

L'anno scorso ho rilasciato un'utilità chiamata Server di file Pafera . È un'app console scritta in Rust che esegue un gestore di file basato sul Web per i tuoi dispositivi, consentendo una facile condivisione di file su qualsiasi dispositivo dotato di browser Web con una comoda funzione di presentazione per mostrare le tue foto e le icone shiba. Ciò significa che puoi andare a una festa e lasciare che 200 amici sfoglino le tue foto delle vacanze recenti sui loro telefoni, nei loro tempi e ritmi.

In seguito, con l'arrivo di vari suggerimenti e modelli di utilizzo da parte di amici e sconosciuti casuali di Internet, ho iniziato ad aggiungere sempre più funzionalità. Ora è in grado di sincronizzare interi alberi di directory, transcodificare file multimediali, aprire file con app native del sistema operativo e sincronizzare automaticamente i file sui tuoi dispositivi.

Tuttavia, essendo un'app per console, c'è sempre stato un grosso problema che le ha impedito di essere una soluzione universale per tutti i dispositivi:

Le app della console non possono essere eseguite su iOS, il che significa che non è possibile eseguire Pafera File Server su iPhone o iPad...

Finora.

La nuova app di condivisione file Flutter

Ho avuto un po' di tempo libero durante le vacanze di Natale, mentre il Montenegro festeggiava le feste, quindi ho sperimentato la scrittura di un'app di accompagnamento multipiattaforma in Flutter/Dart che ti avrebbe permesso di navigare facilmente nei server dal tuo telefono. In questo modo, i miei amici meno inclini alla tecnologia avrebbero potuto semplicemente premere due pulsanti e connettersi ai miei server.

Lungo il percorso, ho capito che era possibile utilizzare Dart per gestire il proprio server web sui dispositivi iOS, e ho pensato...

Ehi! Perché non implemento semplicemente il file server in Dart!

Quindi due settimane dopo, l'app è qui.

Il file server Pafera in esecuzione su iPhone

Ora, le prestazioni sono terribilmente lente rispetto alla versione Rust. Il server Rust può servire circa 40.000 richieste al secondo...

Mentre la versione Dart può ospitare solo circa 400...

Ma la cosa importante è che funzioni...

e si installa sugli iPhone!

Utilizzo dell'app

A causa di un bug nella libreria PDFx nelle versioni recenti di Flutter, ho dovuto smettere di usare icone carine per tutti i pulsanti, perché venivano visualizzate come brutte linee nere.

Tuttavia, il funzionamento di base rimane lo stesso.

Funzionamento di base

Una volta che tutti sono connessi alla stessa rete WiFi o all'hotspot del tuo telefono, clicca semplicemente sull'icona dell'app, scegli la cartella che vuoi condividere e tocca "Avvia server".

Quindi fai clic sul pulsante del codice QR, lascia che i tuoi amici lo scansionino e loro potranno tranquillamente sfogliare la tua cartella sui loro telefoni, persino riprodurre in streaming i film dal tuo telefono direttamente sui loro telefoni.

Se il tuo amico sta usando un computer portatile o desktop, non c'è problema. Basta digitare l'URL mostrato sopra il codice QR sul suo dispositivo e lui potrà fare esattamente la stessa cosa.

Se non stai usando iOS o Android, non c'è problema. Le app Flutter funzionano benissimo su OSX, Windows e Linux, quindi otterrai le stesse funzionalità e anche di più se installi rsync, FFMpeg e ImageMagick sul tuo sistema affinché l'app possa utilizzarle.

Funzionalità avanzate

Oltre alla semplice condivisione dei file, sono disponibili numerose funzionalità avanzate, per cui ne darò una rapida panoramica.

Il nome host è ciò che viene mostrato agli altri dispositivi quando cliccano su "Cerca altri server". Puoi usarlo per distinguere rapidamente un dispositivo dall'altro se stai condividendo un paio di dispositivi contemporaneamente.

La cartella è la cartella del file system che stai effettivamente condividendo. Puoi cliccare su "Usa cartella documenti" per impostazione predefinita in Documenti/condivisi, oppure puoi cliccare su "Scegli cartella" per scegliere un'altra cartella. Potresti anche dover cliccare su "Usa cartella documenti" se iOS non aggiorna correttamente le impostazioni dell'app quando si riprende dalla sospensione.

Usa IP corrente rileva automaticamente l'IP WiFi corrente del tuo dispositivo. Come con "Usa cartella documenti", usalo se iOS non aggiorna correttamente l'app e sta ancora usando un IP da una precedente rete WiFi.

"Condividi su tutte le interfacce" imposta l'IP pubblico su 0.0.0.0, il che significa che tutti su qualsiasi cosa a cui sei connesso sarà in grado di vedere il tuo server. Utile sui desktop con più di una connessione, ma fai attenzione a usarlo in luoghi pubblici.

"Avvia condivisione" eseguirà il server e aprirà la homepage per consentirti di gestirla. Cliccandoci di nuovo, il server verrà arrestato e i tuoi file saranno al sicuro.

"Carica ultime impostazioni" e "Salva impostazioni correnti" fanno esattamente ciò che dicono. Le tue impostazioni saranno archiviate in Documenti/paferafileserver.cfg proprio come la versione Rust della console.

Opzioni avanzate

Le diverse opzioni di password servono per dare a persone diverse livelli di accesso diversi.

Normalmente, chiunque può vedere i tuoi file semplicemente connettendosi al tuo server, ma se selezioni "Abilita file privati" qui sotto, nessuno potrà vedere i tuoi file senza la password di lettura.

La password di scrittura è usata per caricare, spostare, copiare o eliminare file. Senza questa, nessun altro può fare nulla al tuo sistema se non visualizzare i tuoi file.

La password shell è inutile sull'app mobile, ma è molto utile sui sistemi operativi desktop e su Termux su Android. Ti consente di eseguire comandi di sistema arbitrari, il che la rende molto potente e molto pericolosa allo stesso tempo. Questa funzionalità è disabilitata di default e devi inserire una password shell E selezionare "Abilita comandi shell" qui sotto per utilizzarlo.

Le varie opzioni di abilitazione e disabilitazione ti consentono di scegliere cosa possono fare altre persone al tuo sistema anche quando hanno già la password giusta. Queste sovrascrivono tutte le altre opzioni, quindi se disabiliti la copia dei file, nessuno, nemmeno tu stesso, sarà in grado di copiare i file.

L'opzione speciale "Disabilita SSH Keycheck" è per persone come me che vanno costantemente in giro mentre sincronizzano file avanti e indietro tra diversi dispositivi. Normalmente, SSH chiederà conferma quando ci si connette a un sistema il cui indirizzo IP è cambiato, anche se l'identità di quel sistema è già nota. Questa opzione ti consentirà di sincronizzare automaticamente i file su diverse reti senza dover scendere nella console per confermare le connessioni SSH. Usala con cautela quando sei su reti che non controlli tu stesso.

Funzionalità disabilitate su dispositivi mobili

A differenza dell'esecuzione in Termux o in un ambiente desktop, le app iOS e Android non hanno accesso a una shell, rsync, ImageMagick o FFMpeg, quindi tutte le funzionalità avanzate di sincronizzazione e transcodifica sono disabilitate.

Poiché i sistemi operativi mobili possono chiudere le app in background in qualsiasi momento, vengono disattivate anche le attività automatiche temporizzate.

Ci sono possibili soluzioni alternative per tutti questi aspetti, ma il tempo necessario per integrare queste funzionalità è al momento al di là delle mie intenzioni. Se qualcuno è interessato a pagarmi per aggiungerle, allora vedremo cosa succede. 😁

Download e codice sorgente

Come per tutti i miei progetti, il codice sorgente è ospitato su Codeberg e può essere trovato qui .

Per i binari precompilati, puoi sfoglia la directory delle release qui ...

Oppure clicca semplicemente sui link sottostanti:

A causa dei requisiti di firma di Apple, gli utenti iOS e OSX devono attendere che l'app sia disponibile sull'App Store oppure scaricare il codice sorgente e compilare la propria versione per i propri dispositivi.

Candidati per diventare un Beta Tester

Poiché si tratta di una nuova versione, sono sicuro che ci saranno molti bug e comportamenti strani su vari sistemi. Se desideri testare questa app per me, inviami un'e-mail con la versione del tuo dispositivo e del tuo sistema operativo e ti farò configurare TestFlight.

Distribuire un'app Flutter è in realtà molto più complicato della versione Rust, in cui carico solo un singolo eseguibile e ho finito con tutto, quindi siate comprensivi quando Apple impiega tre settimane per controllare la mia app e consentirle di entrare nell'App Store iOS. Le cose dovrebbero essere molto più semplici quando Apple sarà tenuta a consentire app di terze parti come da sentenza UE.

Come sempre, spero che questa app vi sia utile e, se volete personalizzarla per i vostri scopi, sono sempre disponibile come consulente tecnico. Divertitevi!

Informazioni sull'autore

Jim programma da quando ha ricevuto un IBM PS/2 negli anni '90. Ancora oggi preferisce scrivere HTML e SQL a mano e si concentra sull'efficienza e la correttezza del suo lavoro.