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. merci pour les infos 🙂
    pour les debianneux, afin d’installer le client swift sans avoir une flopée d’erreurs de compil, il faut installer quelques paquets python :
    aptitude install python-event python-greenlet python-netifaces python-simplejsonpython-xattr
    et enfin, python setup.py install
    et la swift fonctionne \o/

  2. bon. ben voila, c’est monté et ça roule. mercii 🙂
    now, test tiiiime !

  3. ça fonctionne très bien sous debian squeeze (cloudfuse), je n’ai pas eu besoin d’installer le client swift. Je peux maintenant faire mes backups directement sur hubic ! cool, merci bien – (je fais aussi mes backups sur un « vrai » ftp quand même hein 🙂

    ça débite assez bizarrement : jusqu’à 72Mbps et des descentes à 2Mbps depuis un serveur ovh…

    j’aimerais tweaker le montage pour que ce soit plus souple… des idées???

    Bonne soirée.

  4. T’as plein d’option de montage dans cloudfuse, a mon avis, faut un peu jouer avec 🙂
    J’avais des problemes de time au début que j’ai régler avec noauto_cache. Tu peux aussi manipuler le synchrone/asynchrone.
    J’ai pas eu le temps de tout tester mais n’hésite pas à faire un retour de tests 😉
    @dju merci pour les infos complémentaires 🙂

  5. Alors, après avoir joué un peu avec les options de montage, voici celles qui me semblent intéressantes au niveau réponse et vitesse :

    allow_other,noauto_cache,direct_io,kernel_cache,big_writes

    il y a aussi les options max_read,max_write et max_readahead=N qui semble intéressantes mais pour les « bonnes » valeurs, il faudrait comprendre comment hubic tamponne les données envoyées…

  6. Bonjour,

    j’utilise cloudfuse pour monter le partage hubic. J’ai bien crée le .cloudfuse dans mon home, mais authentifcation failed.
    L’URL ne semble pas la bonne

  7. L’url est celle de ton service local d’authentification. A verifier deja si elle fonctionne en l’appelant directement.

  8. Bonjour,

    merci pour ce tuto.
    Au lancement, j’obtiens ce message d’erreur :
    Failed to authenticate.
    ERROR : SSL certificate problem: self signed certificate in certificate

    Pour info, mon serveur d’authentification n’est pas (encore) en https.

    Une idée ?

    Cordialement,
    BernardO.

  9. Salut
    Même problème « authentifcation failed » aujourd’hui…
    J’avais suivi le tuto sans soucis et ça marchait très bien avant ce week-end. J’ai tenté de le refaire aujourd’hui sur la même machine (debian 6) mise au propre et ça veut plus :-/
    Est-ce que ovh aurait changé quelque chose pour nous empêcher de jouer ? Ça doit pas les arranger beaucoup de voir des serveurs dédié venir en force sur leur joujou à Roubaix, et avec le retweet d’Oles on doit être beaucoup /
    Ex.

  10. Je viens de refaire l’install sur un pc neuf et pas de soucis d’authentification, tout marche nickel :/
    La seule différence est que j’ai un compte illimité hubic.

  11. Damned :-/
    J’ai aussi un compte illimité. Bon je vais retenter demain au calme pour voir mais j’ai fais la manip’ deux fois déjà cet après-midi avec le même résultat.
    Peut-être mal tombé pendant qu’Hubic avait un coup de mou, ce ne serait pas une première. 😉
    Ex.

  12. Tu as vérifié que le cookie de session s’écrit bien dans le répertoire « cache » de ton HubicSwiftGateway (serveur web) ?

  13. Après un ultime reboot ça parti et tout roule !
    On va pouvoir continuer à jouer avec cette petite chose 😉
    Je te remercie pour ton attention 🙂
    Ex.

  14. Bonjour,

    quand je recupère le package swift, j’ai plusieurs executables mais aucun avec uniquement le nom swift.
    Est ce normal ?

    Merci

  15. J’ai regroupé l’authentification OVH et cloudfuse en une seule application clé en main : hubicfuse.
    https://gitorious.org/hubicfuse/hubicfuse

    Il suffit de lancer la commande suivante pour monter son espace Hubic :
    hubicfuse username=USER password=PASSWORD mount/

  16. Sur la roadmap mise à jour le 29/03/2013,
    l’api hubic d’ovh sort le 12/04/2013 donc autant attendre sa sortie imminente.

  17. un chti complément d’information pour ceux qui se demandent comment démonter le repertoire hubic proprement, depuis le meme compte user ayant monté le dossier hubic :
    Au début je tentais un classic ‘umount /mon/dosssier/hubic’ mais marche pas sans être root
    un simple fusermount -u /mon/dossier/hubic fait l’affaire 🙂
    Sinon, je viens de tester encfs par dessus hubic et ça marche au poil 🙂
    Enfin pour les options de montage hubic je plussoie, -noauto_cache et sync_read ne sont pas suffisantes et peuvent bloquer les acces et toute opération dessus.
    La meilleure combinaison testée est
    noauto_cache,sync_read,direct_io,big_writes
    et la ça marche du tonnerre !

  18. Salut guiguiabloc,
    Tout d’abord, merci pour ton blog plein de bons tuyaux.
    Merci également pour cet article sur le montage de Hubic, j’y suis parvenu sans trop de soucis.
    Par contre, comment lancé une synchro ?
    Si je fais un
    rsync -Haurov /media/truc/a/synchro /mnt/hubic/default cela ne semble pas avancé
    Si tu à une piste je suis preneur

  19. Salut domino,
    Merci 😀
    Je te déconseille très fortement de faire du rsync sur hubic !
    La gestions des dates/heures des fichiers est plutôt très aléatoire sur Hubic à l’heure actuelle et tu risques de perdre l’intégralité de tes données (c’est arrivé a plusieurs personnes).
    C’est du moins le retour que j’en ai eu.

  20. Ok merci pour l’info 😉

    Je vais donc faire un tar de mes fichiers pour les copier après à la main

    Si tu as une solution plus direct, car j’ai 200G de données à sauvegarder ce qui va prendre un certain temps. En fait je cherche une solution de backup incrémentiel sur Hubic. Si tu as ça en stock je suis preneur

    Merci

  21. Dans ce cas tu peux toujours essayer le rsync sans l’option delete (ca evitera de perdre des trucs dans ton repertoire source) et voir si la gestion des timestamps s’est améliorée chez Hubic.
    Perso, j’utilise Bacula avec mon repertoire Hubic en volume de stockage.
    De toutes facons, il faudra bien que cette histoire de date de fichier soit réglé au plus vite, sinon c’est ingérable pour les sauvegardes incrémentielles.

  22. @Bertrand Marc, j’ai essayé d’installer votre hubicfuse en compilant à partir de https://gitorious.org/hubicfuse/hubicfuse
    Mais le ./configure me dit : error: ‘Unable to find libjson.
    J’ai donc installé apt-get install libjson-glib-dev mais sans plus de résultat. C’est du Ubuntu 12.04 LTS, est-ce que vous pourriez en dire plus ?

    Et d’une manière générale, j’ai aussi un problème avec la commande « cloudfuse /mnt/hubic/ » qui me renvoie le message suivant : fuse: device not found, try ‘modprobe fuse’ first
    Si je fais un modprobe fuse j’obtiend « FATAL: Could not load /lib/modules/3.2.13-grsec-xxxx-grs-ipv6-64/modules.dep: No such file or directory ».

    Et apt-get install fuse me dit que fuse est déjà installé…

    Est-ce que quelqu’un à une idée ?

  23. Je vais répondre a la place de Bertrand s’il me le permet.
    La librairie nécessaire est libjson0-dev (pour Debian du moins)
    Tu disposes d’un kernel patché Grsec dans ton noyau et fuse et grsec cela ne fait pas bon ménage…
    Il te faut donc d’abord faire fonctionner fuse avec grsec avant toute chose 🙂

  24. Bonjour,

    Le transfert dans Hubic ne conserve pas la date initiale des fichiers/répertoires transférés.
    Est-ce que votre solution permet de conserver les dates ?

  25. Bonjour,
    la réponse est quelques commentaires au-dessus…
    Hubic gère très mal les dates des fichiers, quelque soit la solution choisie.

  26. Excellent tuto.
    L’un d’entre vous a-t-il testé sur la solution PCS d’OVH ?
    Je m’arrache les cheveux à tenter de faire fonctionner cloudfuse avec la nouvelle offre d’OVH et je n’ai que des erreurs 400…

  27. Hello,
    D’abord, merci pour ce chouette travail… Je viens de me faire un compte sur hubic et j’ai voulu le monter avec le tuto présenté ici. Seul hic, j’ai une erreur d’authentification… Est-ce que quelque chose aurait changer?

    Merci,

    Pi-r

  28. Re-Bonjour,

    OK. J’imagine donc que la boulette vient de mon côté… J’ai suivi la démarche proposée dans le tuto. Lorsque je fais un « hubic list »
    , en retour, j’ai
    « default »
    et pas la liste de ce que le serveur contient.
    Et lorsque je fais
    « cloudfuse /mnt/hubic/ -o noauto_cache,sync_read »
    en retour j’ai
    « Bad username or password
    Failed to authenticate. »
    Hors je suis certain de mon mot de passe et de mon nom d’utilisateur (je les utilise pour me connecter online et ca va très bien).

    Une idée de l’origine de l’erreur??

    Pierre

  29. Les données sont justement dans le répertoire « default »

    Pour l’authentification, a part une erreur de login/mot de passe dans le .cloudfuse, je vois pas (attention le login est une adresse email la plupart du temps)

  30. Bonjour,

    Quelqu’un pourrait t’il me fournir un peu d’aide pour compiler cloudfuse sous mac os (mountain lion)?
    Quand je lance « :/configure » (dans le terminal) ça bloque quelque secondes plus tard à:
    configure: error: ‘Unable to find libxml2. Please make sure library and header files are installed.’
    Pourtant il me semble bien avoir réussi à installer libxml2…

  31. @informatoque: Utilisez port pour les packages, et il faut définir les chemins des fichiers à inclure ( « /opt/local/include » ) au script configure.

    Pour ceux qui cherche une solution de backup plus intéressante, incluant compression, encryption et déduplication, j’ai écrit Frost:
    http://x-ryl669.github.io/Frost

  32. salut
    ca marche nickel avec swift et le script php pour uploader et downloader meme si je m’attendais à ce que ca booste plus depuis un dédié ovh. par contre les fichiers sont invisibles par l’interface web de hubic. (je balance pourtant tout bien dans le repertoire default) une idee ?

  33. Je ne peux pas dire que cette technique de montage marche ou pas. En apparence ça marche, mais suite à de nombreux transferts vers Hubic, j’ai perdu par 2 fois mes fichiers (plusieurs GB) : ils sont vus depuis swift/cloudfuse mais disparaissent de chez Hubic (non visibles depuis l’interface web et non downloadable y compris depuis swift/cloudfuse).
    Il semble que le container « default_segments » se casse.

  34. l’authentification ne fonctionne plus : ovh a changé le mode suite à la sortie des api hubic… reste plus qu’à plancher dessus 🙂

  35. Bonjour,
    J’utilise ce système pour monter mon hubic depuis quelques mois, c’est au top.
    Par contre, frayeur, je viens de recevoir un mail sur le lancement de l’API Hubic.
    « …
    Pour que ces applications tierces puissent interagir avec hubiC, nous mettons actuellement en place un nouveau système d?authentification, basé sur le protocole OAuth.
    … »

    Est-ce que l’on va pouvoir encore utiliser cette méthode ?
    Je connais pas ce système.