Scambiare file in 1 secondo con Droopy
Postato da ROb | nella categoria Linux, Utilità | venerdì, 5 febbraio 2010
9
Quante volte vi sarà capitato di dover scambiare un file con un amico o un contatto online e di non riuscire a trovare al volo un sistema veloce, sicuro e immediato per farlo?
Ormai non avete più scuse… c’è Droopy.

Ci sono molti sistemi per condivedere un file: via mail (ma bisogna almeno conoscere l’indirizzo del destinatario), via IM (ma bisogna essere amici reciproci e utilizzare uno stesso network di messaging), via condivisione di rete (ma almeno una delle due persone deve avere già disponibile una cartella in lettura o scrittura per permettere all’altro di accedere).
Droopy, che consiste di un solo semplice script in python, vuole rendere questa operazione immediata.
Ecco le 3 righe, prese dall’homepage del progetto, per far partire Droopy (considerando anche che le prime due servono solamente al primo avvio per creare la cartella dove vogliamo vengano salvati i file caricati).
Prima di eseguirle inserite lo script di Droopy all’interno della cartella ~/bin/ .
mkdir ~/uploads cd ~/uploads python ~/bin/droopy -m "Hi, it's me Bob. You can send me a file." -p ~/avatar.png
La mia versione, leggermente customizzata nel messaggio, nel file di avatar e nella directory di destinazione, è invece la seguente:
python droopy -m "Carica qui per favore..." -p /home/roberto/Documenti/Immagini/Linux/maledizione.jpg -d /home/roberto/Desktop/
In questo modo Droopy crea una pagina web in cui viene visualizzato il testo “Carica qui per favore…” e l’immagine “/home/roberto/Documenti/Immagini/Linux/maledizione.jpg”.
L’esecuzione dello script produce quest’output in console:

Che ci ricorda che i file verranno salvati nel Desktop e che il server per il caricamento è disponibile all’indirizzo: http://localhost:8000 .
A questo punto apriamo la pagina web suggeritaci con il nostro browser e vedremo:

Scegliamo un file e diamo conferma.
La console ci segnala:
localhost - - [05/Feb/2010 01:46:36] Started file transfer localhost - - [05/Feb/2010 01:46:36] Received: Guide To Programming Magento.pdf
Il file che abbiamo caricato via web è pronto per essere usato nel nostro Desktop.
… semplicemente geniale!

IL progetto è interessante ma come faccio a dare il mio IP all’interlocutore?
In ogni modo risponderebbe il router non il mio PC, scusate sono ingnorante in materia mi piacerebbe capire come fare…
Ciao Federico, innnanzitutto grazie del commento.
In realtà Droopy visualizza l’indirizzo ip locale ma funziona anche con l’interfaccia standard.
Quindi, ipotizzando che tu abbia l’indirizzo ip 192.168.1.10 e il tuo firewall sia configurato per accettare connessioni dalla rete locale in porta 8000, se un altro pc nella tua rete puntasse il browser verso http://192.168.1.10:8000 dovrebbe vedere la tua pagina Droopy.
Nel caso di accesso al tuo PC da Internet la cosa si complica.
Innanzitutto dovresti essere in grado di comunicare al tuo “uploadatore” il tuo indirizzo ip pubblico. Puoi ottenerlo entrando nell’interfaccia web di configurazione del tuo router solitamente nella sezione “stato”, oppure utilizzando questo link: http://checkip.dyndns.org/ .
Comunica tale ip al tuo “uploadatore” ma prima di farlo controlla che il tuo router riesca a fare il reverse mapping della porta 8000 verso il tuo PC (questa funzione si chiama anche Virtual Server). Praticamente tutte le connessioni che il tuo router riceve in porta 8000 vengono redirezionate verso il tuo indirizzo locale: 192.168.1.10.
Se tutto funziona a dovere in questo modo il tuo Droopy dovrebbe essere accessibile anche pubblicamente. Mi raccomando ricordati di terminare lo script quando non serve più. E’ come se avessi un server ftp di upload senza password aperto su Internet!
Piccola nota: il servizio DynDNS permette di associare automaticamente e gratuitamente un nome host al tuo indirizzo IP dinamico. Puoi approfondire direttamente nel sito.
Spero di essere stato abbastanza chiaro.
Grazie, proverò a configurare il mio router vediamo se ci riesco… E grazie per la dritta su DynDNS, sembra interessante..
Ciao, volevo segnalare woof (http://www.home.unix-ag.org/simon/woof.html) che fa la stessa cosa di Droopy ma ha anche un plugin per Gnome-Do per poter inviare direttamente ai contatti pidgin la url corretta.
Carino… lo proverò.
Dalla pagina introduttiva sembra che woof sia anche più flessibile permettendo sia upload che download.
Grazie, E.
Ed io segnalo DropBox…
http://www.bits4beats.it/linux/un-hard-drive-online-gratuito-con-dropbox/
Grazie Alex.
L’unico difetto di DropBox è la mancanza della funzione di upload pubblico, o perlomeno non ne sono a conoscenza.
Interessante spunto, ma con le premesse di dover aprire porte nel firewall, andare alla ricerca di IP o hostnames… manca un po’ di collocazione, questo script.
Per un uso nella vita di tutti i giorni, piu’ facile che uno conosca l’indirizzo email o il contatto IM di una persona o che sappia aprire porte nel suo firewall, definire un nome host apposito?
Se uno sa fare tutte le operazioni necessarie per renderlo utile su internet, in pratica non ha necessita’ dello script in se’, perche’ qualunque altra forma di accesso andrebbe bene (ssh? sftp?…)
Insomma, al di la’ del proof of concept, lo vedo poco utile.
eNjoy
Giustissime osservazioni.
Comunque ti posso dire che in qualche caso mi è stato veramente utile.
Un giorno ad esempio mi trovavo all’interno di un’azienda per cui stavo facendo una consulenza; allegati di grandi dimensioni non erano ammessi via mail, non erano utilizzabili client di IM e la prima soluzione veloce per scambiare un file di grandi dimensione è stata proprio Droopy.
Ogni informatico sa che ogni situazione presenta le sue particolarità. Non ci sono regole valide sempre. La cosa veramente importante è conoscere quante più alternative possibili per trovare sempre la strada giusta.