Copia dati in bulk tra servizi Cloud con rclone

Gioxx  —  12/12/2017 — Leave a comment

Ho avuto la necessità di spostare numerosi file (10 GB / circa 100.000 file) da una cartella di Dropbox a una di Box.com. Un tempo avrei utilizzato Mover (te ne avevo già parlato), ma il servizio è diventato a pagamento, e non si trattava di materiale che meritava un investimento in denaro, nonostante non avrei voluto comunque perderlo. Poi ho scoperto rclone, e ho fatto centro con qualche riga lanciata in un prompt dei comandi di Windows, sulla macchina che mi fa da Media Center a casa (con una connessione in fibra di Fastweb che non mi ha fatto neanche accorgere del passaggio).

Copia dati in bulk tra servizi Cloud

Te la faccio semplice (anche perché in realtà questo tool permette un’infinità di operazioni, tutte minuziosamente documentate) e ti spiego cosa ho fatto io, così che tu possa replicarlo, ma niente e nessuno ti limita rispetto a ciò che potresti fare utilizzando rclone e i tuoi account di Cloud Storage (anche schedulando le operazioni e automatizzandole completamente).

Scarica rclone da rclone.org/downloads (x86 o x64 in base al tuo sistema operativo), scompatta il file ZIP, non necessita di installazione alcuna, è subito utilizzabile.

Collegamento ai servizi

Apri un prompt dei comandi e spostati nella cartella di rclone, quindi lancia un rclone config per entrare in modalità di configurazione. Quando richiesto, aggiungi un nuovo servizio di Cloud Storage (n):

Scegli un nome “parlante” (che ti permetta immediatamente di capire di che account si tratta) ma che non contenga spazi al suo interno (fidati, è per tua comodità, ma se proprio devi utilizza un “_“), per esempio “googledrive“. Ti verrà ora presentata la lista degli storage compatibili, inserisci manualmente il nome di quello che ti interessa (per esempio, per Google Drive dovrai scrivere “drive“):

Copia dati in bulk tra servizi Cloud con rclone

Ti verranno richiesti dei dati che quasi certamente non possiedi già (client_id e client_secret per poter accedere al tuo account di Google Drive), premi invio in corrispondenza di entrambi e arriva alla fatidica domanda che ti chiederà di utilizzare la configurazione automatica, quindi procedi in questa modalità (rispondi “y” quando richiesto), così verrà aperta una scheda del browser in cui potrai autenticarti e confermare l’accesso alle tue risorse, chiudi pure la scheda:

Storage> drive
Google Application Client Id - leave blank normally.
client_id>
Google Application Client Secret - leave blank normally.
client_secret>
Remote config
Use auto config?
 * Say Y if not sure
 * Say N if you are working on a remote or headless machine or Y didn't work
y) Yes
n) No
y/n>y

Il codice verrà catturato in autonomia da rclone, tu dovrai solo rispondere alle ulteriori domande a video (se si tratta di un account di Team, nel caso di Google Drive), poi ti verrà mostrato il token di accesso recuperato, è ciò che serve per “parlare” con quel Cloud Storage, dai un’ultima conferma con “y” quando richiesto.

Hai terminato la configurazione. Puoi / devi replicarla per gli altri servizi di Cloud Storage, o almeno con un altro se la tua intenzione è quella di copiare dati tra due di quelli su cui sei registrato.

Move dei dati

Fai riferimento a questo documento: rclone.org/commands/rclone_move. Io ti riepilogo ancora una volta i passaggi.

Dato per scontato che tu abbia aggiunto almeno un altro account di Cloud Storage, puoi fare un “dir” delle cartelle che hai su un account Cloud lanciando un rclone lsd dbox: (dove dbox è il nome che io ho dato al mio account Dropbox configurato, dovrai sostituirlo con quello scelto da te!), mantieni i due punti finali (:), altrimenti otterrai errore.

Io, che la cartella da spostare l’ho salvata in una sotto-cartella di un’altra sotto-cartella, arrivo a ottenere una cosa simile:

C:\temp\rclone-v1.38-windows-amd64>rclone lsd "dbox:laboratorio\temp\Test rclone"
 -1 2017-12-02 17:05:33 -1 spostami

Se devi esplorare cartelle che nel nome contengono degli spazi, ti basterà racchiudere il tutto tra apici. Per ottenere una lista completa dei file oltre che delle cartelle, sostituisci lsd con ls, per capirci:

C:\temp\rclone-v1.38-windows-amd64>rclone ls "dbox:laboratorio\temp\Test rclone"
 0 spostami/Nuovo Documento di Microsoft Word.docx
 6559 spostami/Nuovo Foglio di lavoro di Microsoft Excel.xlsx
 59904 spostami/Nuovo Microsoft Publisher Document.pub
 0 spostami/Nuovo Presentazione di Microsoft PowerPoint.pptx
 0 spostami/Nuovo documento di testo.txt

Veloce giro anche su Google Drive per capire dove spostare la cartella:

C:\temp\rclone-v1.38-windows-amd64>rclone lsd googledrive:
 -1 2013-08-27 14:31:01 -1 ABPXFiles
 -1 2015-10-06 19:23:15 -1 Apps
 -1 2012-11-13 14:47:41 -1 Archivio
 -1 2013-11-12 14:56:02 -1 Mozilla Italia
 -1 2012-11-13 14:48:37 -1 Personali
 -1 2017-12-02 15:59:13 -1 Test rclone

È fatta. La cartella “spostami” che si trova nella sorgente (Test rclone su Dropbox) dovrà finire nella medesima sulla destinazione (Test rclone su Google Drive). Il comando Move di rclone viene quindi in soccorso:

rclone move "dbox:laboratorio\temp\Test rclone" "googledrive:Test rclone"

Salvo errori, il risultato è quello aspettato:

C:\temp\rclone-v1.38-windows-amd64>rclone ls "googledrive:Test rclone"
 0 spostami/Nuovo Documento di Microsoft Word.docx
 6559 spostami/Nuovo Foglio di lavoro di Microsoft Excel.xlsx
 59904 spostami/Nuovo Microsoft Publisher Document.pub
 0 spostami/Nuovo Presentazione di Microsoft PowerPoint.pptx
 0 spostami/Nuovo documento di testo.txt

rclone ricreerà –se necessario– anche l’albero cartelle che nella sorgente c’è ma che non trova corrispondenza nella destinazione, così da mantenere lo stesso identico ordine per tutti i file che andrai a copiare / muovere / sincronizzare i tuoi dati.

Cosa conviene ricordarsi

Nel caso in cui ti dovesse servire ficcare il naso nel file di configurazione (lo sconsiglio, ma può tornare utile, io l’ho fatto per operare una modifica manualmente e per replicare la medesima configurazione su una diversa postazione), ricordati che potrai trovarlo nella tua cartella utente (%UserProfile%), quindi in .config\rclone.

Qui –salvo modifiche future del programma– troverai un file chiamato rclone.conf. è lui a contenere i nomi delle tue connessioni e relativi token di accesso.

Potrai sempre (da prompt dei comandi) leggerlo anche dalla riga di comando di rclone, semplicemente lanciando il comando rclone config show.

That’s all folks!

Probabilmente hai trovato il metodo giusto per spostare i tuoi file, o magari per tenerli sincronizzati costantemente tra più servizi Cloud :-)

×

Attenzione

Questo post è stato scritto più di 5 mesi fa, potrebbe non essere aggiornato. Per qualsiasi dubbio ti invito a lasciare un commento per chiedere ulteriori informazioni! :-)

Condividi l'articolo con i tuoi contatti: