Montage d’un espace de stockage Google Drive pour un serveur sous Debian 7
Introduction
J’ai eu comme besoin de monter un partage provenant d’un Cloud pour un ami. Celui ci a fini par choisir Google Drive. Son besoin était simple, il lui fallait un petit espace de stockage pour sauvegarder des données de son serveur. J’ai touvé de la documentation pour quelques soft sous Debian comme grive mais ce dernier est en sid. Bon, je rechigne à passer par lui, même si son atout majeur est tout de même d’être un paquet qui peut être mis à jour facilement. De plus, je veux un point de montage des plus basiques. Je me retourne donc vers google-drive-ocamfuse. Le hic avec ce système est que pour le token de google, l application lance par défaut un navigateur … Sur un serveur c est un peu comment dire problématique. Voici donc la méthode pour régler le problème.
Installation
apt-get install ocaml camlp4-extra make
cd /root
git clone https://github.com/OCamlPro/opam.git
cd opam
./configure
make
make install
Quand tout est fini, il faut rajouter le PATH à l’environnement
on édite le ~/.bashrc
PATH=$PATH:$HOME/.opam/system/bin
export PATH
puis
source ~/.bashrc
Préparation de votre compte Google
Tout d’abord évidemment, rendez vous sur Google et activez votre espace Google Drive.
Ensuite, il va nous falloir un code d’activation d’api.
Pour cela, rendez vous sur :
https://code.google.com/apis/console/
Créer un projet.
Il faut maintenant activer DRIVE API. Pour cela, dans le menu de gauche, cliquez sur APIs dans la section APIs & auth. Activez Drive API.
Puis dans le menu APIs & Auth toujours à gauche, cliquez sur consent screen, remplissez les champs Email address et product name, si vous ne le faites pas Google refusera d’autoriser votre api.
Maintenant il nous faut un client id, pour cela, allez dans le menu de gauche dans la section APIs & auth dans Creditentials
Cliquez sur Create new Client ID
Sélectionnez installed application et other.
Il va alors vous donner un #CLIENTID# et un code secret #CLIENT SECRET#
Configuration de google-drive-ocamfuse
Dans votre terminal, lancez la commande suivante en remplaçant par les valeurs récupérées précédemment.
./google-drive-ocamlfuse -label googledrive1 -headless -id #CLIENTID# -secret #CLIENT SECRET#
Vous verrez alors dans la console s’afficher une url, récupérez la et collez la dans votre navigateur. Suivez les deux étapes pour récupérer le code de vérification que vous collerez dans le prompt de votre terminal.
Montez votre google drive
mkdir /mnt/googledrive
google-drive-ocamlfuse /mnt/googledrive
mount
et pour verifier faites un
df -h
Démontez votre googledrive
fusermount -u /mnt/googledrive
Montez plusieurs google drive
Comme dis le dicton, plus on est de fou plus on rit, il est tout a fait possible de monter plusieurs Google Drive.
Pour cela, il faudra reprendre l’étape de configuration avec un label différent par compte et bien sur générer pour chaque compte un #CLIENTID# et un code secret #CLIENT SECRET#.
Créez differents points de montage, puis lancez la commande :
google-drive-ocamlfuse -label [label] [mountpoint]
Automatisation du montage au démarrage
Créez le fichier /usr/bin/gdfuse
#!/bin/bash
google-drive-ocamlfuse -label $1 $*
exit 0
On le rend exécutable
chmod +x /usr/bin/gdfuse
On édite maintenant le fichier /etc/fstab
et on rajoute la ligne
gdfuse#googledrive1 /mnt/googledrive fuse allow_other 0 0
ou googledrive1 est le nom du label, si vous n’avez pas précisé de label, remplacez googledrive1 par default
et enfin pour monter votre google driver
mount /mnt/googledrive
Conclusion
Avoir ce type de montage sur un serveur, un lien direct avec un Cloud est très intéressant, les possibilités sont multiples : espaces de stockage, de backup, plus facile pour un client de déposer des fichiers depuis son smartphone ou son pc. Mais attention au piège, utilisez bien ce montage comme tampon, ne traitez jamais les fichiers dessus sinon les performances dues à la latence du réseau plomberont votre programme.
Crédits :
Merci à l’auteur Alessandro Strada pour son travail



2 comments