Mostro oggi un modo rapido per condividere file in maniera semplice e sicura, da Raspberry Pi a PC o viceversa, senza passare da alcun Cloud e senza dover necessariamente avere una configurazione nel router che predisponga la cosa o ricorrere a complicate procedure d’installazione.

raspberry-pi-board

Abbiamo già visto in precedenza come accedere ai file di un hard disk collegato al nostro Raspberry Utilizzando Samba. Tuttavia questo non permette una trasmissione al di fuori della nostra rete locale LAN.
Il metodo che invece proponiamo oggi permette ai dati di viaggiare anche al di fuori della nostra rete locale.
Quindi un trasferimento Peer to Peer remoto.

Dat

Il software che andiamo ad utilizzare si chiama Dat. E’ open source e scritto in Node.js.

dat-nodejs

Dat è un tool decentralizzato per la distribuzione di piccoli o grandi file.

Ecco elencate una serie di caratteristiche:

– Sincronizzazione in real-time delle cartelle all’aggiunta/rimozione dei file o cambiamenti (A mò di Dropbox).
– Connessione diretta verso i peer senza passare da server centrali (cloud).
– Sincronizzazione intelligente deduplicando i dati fra le varie versioni di un file.
– Verifica dell’integrità dei dati usando hash crittografici robusti.
– Funziona ovunque, linea di comando, browser o su Desktop.

Altre le trovate sul sito ufficiale del progetto, o sulla repo github.

Installare dat su RaspberryPi

Nelle ultime versioni di Raspbian son già presenti npm e Node.js. Le uniche dipendenze necessarie per far girare Dat.
Installarlo è immediato usando npm, basta lanciare da CLI il comando che segue:

npm install -g dat

Utilizzare Dat

In questo video si mostra brevemente come usare Dat per trasferire cartelle di dati in Peer to Peer (P2P).

Una delle caratteristiche di Dat è che funziona ovunque. Quindi potete optare per l’installazione del client da linea di comando, l’app Desktop o utilizzarlo dal browser, andando su dat.land.

Ricapitolando, dopo l’installazione sui dispositivi, sarà sufficiente lanciare dat [directory]:

$ dat path/to/directory/
Sharing path/to/directory/
 
Share Link: d6e1875598fae25165eff440ffd01513197ad0db9dbb9898f2a141288b9322c6
The Share Link is secret and only those you share it with will be able to get the files
 
[==============>] Added 2 files (1.44 kB/1.44 kB)
 
Connected to 1 peers. Uploading 288.2 B/s. Watching for updates...

Dopodichè per scaricare il contenuto della directory da un altro Dispositivo dat [dat-link] [download-directory]:

$ dat d6e1875598fae25165eff440ffd01513197ad0db9dbb9898f2a141288b9322c6 download_dir
Downloading in /Users/joe/download_dir
 
Share Link: d6e1875598fae25165eff440ffd01513197ad0db9dbb9898f2a141288b9322c6
The Share Link is secret and only those you share it with will be able to get the files
 
[==============>] Downloaded 3 files (1.44 kB/1.44 kB)
 
Connected to 1 peers. Downloading 1.44 kB/s. Watching for updates...

Creare uno snapshot

Lo snapshot legge i file e crea un link unico che sarà lo stesso per quell’insieme di file (se rimangono invariati). Per creare uno snapshot si usa l’opzione --snapshot, così: dat my_data/ --snapshot.

Opzioni di condivisione

Condividere uno snapshot dei file attuali:

dat [directory] --snapshot

Configurare una porta in entrata TCP. Utile per il debug su network più restrittivi:

dat [directory] --port=1234

E questo è tutto, lasciate qualche parere e se volete capire come funziona Dat sotto al cofano, rimandiamo alla documentazione ufficiale.