Marvin Pascale

[B.Log]

19 Maggio 2020

Google Drive con Ocamlfuse

File system

Come ormai noto, in Linux è possibile montare i dispositivi in qualsiasi cartella in modo trasparente.

Per fare un esempio concreto, se su Windows inserite un nuovo supporto, a quest’ultimo verrà assegnata una lettera (es: D:\, F:\, ecc). Su linux ciò non accade e il nuovo supporto può essere montato in un qualsiasi punto del file system (es: /mnt, /media, /home/utente/drive).

Il numero di file system che possono essere utilizzati è altissimo ed è proprio con uno di questi (Ocamlfuse) che accederemo a tutti i nostri drive come se fosse una sotto-cartella della nostra home.

Ocamlfuse

E’ un progetto opensource che permette di gestire i drive legati al nostro account GSuite. Parlo al plurale perché i felici possessori di un account business o superiore possono creare dei drive definiti “drive del team” che hanno una nuova root.

Ma cosa fa Ocamlfuse?

  • Fornisce supporto per più account;
  • fornisce supporto per collegamenti simbolici;
  • mantiene le autorizzazioni e la proprietà UNIX;
  • permette di gestire file duplicati;
  • permette di accedere alla directory del cestino.

Queste sono solo una parte delle funzionalità di Ocamlfuse ma a mio avviso le più interessanti.

Dopo averlo installato si può procedere come di seguito:

  • inizializzazione

Nella prima fase viene lanciato il browser di default per accedere all’account Google e fornire i permessi necessari.

google-drive-ocamlfuse
  • montaggio

Nella fase successiva viene creata la cartella per il mascheramento e di fatto montato il drive di Google.

mkdir ~/gdrive
google-drive-ocamlfuse ~/gdrive

Miglioriamo le prestazioni

Appena installato Ocamlfuse, il file system ci permette da subito di montare i nostri drive e accedere ai file, ma con qualche semplice trucco è possibile ottenere prestazioni migliori.

Nella nostra home verrà creata una cartella nascosta .gdfuse all’interno della quale verranno create tante sotto-cartelle quanti sono i drive inizializzati.

Per montare i “drive del team” basta recuperare l’id dello stesso e inserirlo nel file di configurazione. Nell’esempio ti mostrerò anche come etichettare un drive per una gestione più precisa.

# google-drive-ocamlfuse -label marvinDrive

In questo caso verrà creata marvinDrive, una cartella dentro .gdfuse all’interno della quale troveremo il file config.

# ll ~/.gdfuse/marvinDrive
drwx------    - mpascale 19 mag 10:19 cache/
.rw-rw-r-- 1,5k mpascale 18 mag 16:17 config
.rw-rw-r--    0 mpascale 18 mag 16:17 gdfuse.log
.rw-rw-r--  475 mpascale 19 mag 10:18 state

All’interno del file config inseriamo l’id del drive.

team_drive_id=

Per recuperare l’id del drive c’è una semplice regola:

https://drive.google.com/drive/u/1/folders/0XS2-_aJgHL29KfOVHAS22
                                           ^------- copia da qui

Aumentiamo la cache

Il valore impostato di default è 512 (MB), ma di certo è consigliato aumentarlo.

max_cache_size_mb=5120 # ovvero 5 GB

Evitiamo di scaricare file inutili

Se non dobbiamo lavorare con i documenti di GSuite dal nostro pc possiamo decidere di non scaricarli.

download_docs=false

Stream per i file grandi

stream_large_files=true

Conclusioni

Se hai fatto tutto correttamente troverai un mountpoint da ben 8 Exabyte. Più di quanto potessi immaginare.

google-drive-ocamlfuse       fuse.google-drive-ocamlfuse  8,0E  2,3G    8,0E   1% /home/mpascale/gdrive

Non ti resta che mettere le mani in pasta e provare anche tu.


Le opinioni in quanto tali sono opinabili e nulla ti vieta di approfondire l’argomento.

Risorse: