Monter votre Hubic dans un répertoire Linux

Un petit billet vite fait suite a l’avalanche de mails que j’ai reçu après mon tweet sur mon montage local de mon dépot Hubic.

Apparemment, cette technique semble très recherchée actuellement (surtout depuis l’abandon du support « non officiel » webdav de Hubic).

Donc je vais vous expliquer rapidement, comment monter votre dépôt Hubic sous Linux, et l’utiliser comme un simple répertoire local (synchro comprise).

Hubic utilise Open Stack, un projet opensource axé sur le « cloud computing ».

A ce titre on pourrait imaginer qu’il est totalement compatible avec les librairies OpenStack (comme Swift), mais en fait, pas vraiment…

Si, intrinsèquement, le client Swift fonctionne, OVH a rajouté une couche  supplémentaire d’authentification à base de token, et ça, c’est pas vraiment bien géré par Swift.

Heureusement, des confrères bloggeurs comme Vincent Giersch ou Toorop ont proposé des solutions pour s’authentifier sur Hubic via Swift.

Toorop propose même une passerelle de pré-authentification en libre service pour votre Hubic, mais dans notre cas, nous allons tout gérer en interne.

  • Gérer en interne la pré-authentification Hubic

Je me suis basé sur l’excellent travail de Toorop et son HubicSwiftGateway.

Télécharger les sources :

https://github.com/Toorop/HubicSwiftGateway

Décompresser le tout et copier l’intégralité du contenu du répertoire « www » dans un des répertoires de votre serveur web local (ah bah oui, je suppose quand même que vous avec un petit serveur web dans votre réseau interne… (et qui supporte php aussi…)
Un niveau au dessus, il vous faut créer un répertoire « cache » avec les droits 777 (je sais c’est crade… mais bon, ca reste du local)

Pour ma part, j’ai tout déposé dans le répertoire « hubic » et la gateway est donc accessible via http://lan.web/hubic (et donc le cache sur http://lan.web/cache)

Dès maintenant vous pouvez utiliser le client Swift officiel en ligne de commande (y’a que ça de vrai) grâce a un :

swift -A http://lan.web/hubic/ -U loginhubic -K motdepassehubic

Je vous conseille un petit « alias hubic= … » dans votre .bashrc 😉

et donc un « hubic list » vous donnera la liste de vos fichiers.

(ou swift -A http://lan.web/hubic/ -U loginhubic -K motdepassehubic list , si vous aimez taper au clavier)

bref, swift -h pour l’aide ou le site web 🙂

  • Installer cloudfuse

Michael Barton nous offre une petit bout de code bien sympa permettant de monter sous linux des stockages distants type Rackspace (et Swift également) via la bibliothèque FUSE.

Télécharger les sources de CloudFuse ici :

https://github.com/redbo/cloudfuse

Préparer les pré-requis sous notre nunux favori :
libcurl, libcurl-devel, fuse, fuse-devel, fuse-libs, libxml2 et libxml2-devel

Installation comme je les aime :

tar xvzf redbo-cloudfuse-809b07e.tar.gz
cd redbo-cloudfuse-809b07e
./configure
make
make install

Un petit fichier de config dans votre home directory (.cloudfuse) :

username=loginhubic
api_key=motdepassehubic
authurl=http://lan.web/hubic/
cache_timeout=20

Et voila, ne reste qu’a se mkdir un /mnt/hubic

et la commande magique… tadammm :

/usr/local/bin/cloudfuse /mnt/hubic/ -o noauto_cache,sync_read

(bon je vous laisse lire le man de cloudfuse si vous voulez peaufiner ;))

Et voila, vous avez votre Hubic directement sous /mnt/hubic.
Créer ou supprimer un fichier et vous le retrouverez synchroniser avec vos autres clients Hubic officiels 😀

Magique non ?

Amusez-vous bien 😉

Ce billet a été posté dans linux et taggé , , , , . Bookmark ce permalink.

59 commentaires sur “Monter votre Hubic dans un répertoire Linux

  1. bon en fait, après mise à jour du mdp via la web app et mise à jour de mon .cloudfuse, c’est tjs ok 🙂
    ouf!

  2. Avant de compiler cloudfuse sous debian, les paquets à installer sont: build-essential libcurl4-openssl-dev libxml2-dev libssl-dev libfuse-dev

    Ensuite, le montage n’est faisable que par root. Pour qu’un utilisateur ‘lambda’ puisse réaliser le montage, il faut:
    – ajouter cet utilisateur dans le groupe fuse : usermod -aG fuse lambda
    – rendre le montage /mnt/hubic accessible au groupe fuse : chgrp fuse /mnt/hubic; chmod g+w /mnt/hubic

    Merci pour ce tuto qui est simple et efficace.

  3. aie aie, merci pour l’infos et le lien. J’ai effectivement un échec également que je viens de constater dans mon backup hebdo.

  4. Merci pour les liens.
    Ca fonctionne, mais c’est très « basique » !
    Le mode copie fichier sur /tmp pour tout read/write est un peu « bulldozer », et le fuse est probablement écrit en mono-thread. Remarquez que de ce côté là davfs2 n’est pas mieux !
    L’inconvénient de cela est que ça bloque pas mal le système, même un ls sur le répertoire de montage aura du mal à répondre pendant qu’on fait des lectures/écritures.

    A l’occasion je jetterai un oeil pour voir si on peut améliorer (j’avais fait un fuse pour la Freebox et il marchait plutôt bien).

    En attendant, ça a le mérite d’exister et de fonctionner, même si c’est de façon « basique ».

  5. Merci guigui, je vois qu’on peut donc utiliser hubic sans le client proprio d’OVH (mais qu’est-ce qui leur a pris???). Note : on traduit « library » par « bibliothèque » et non « librairie ». Une librairie est un magasin qui vend des livres.