NAS illimite avec windav et hubic

Merci a Kuri sur le site https://paranoia.abuser.eu/wordpress/?p=30

Mon NAS illimite.

Kuri Les offres “cloud” (ce fameux mot marketing), devenant de plus en plus presentes, j ai pense a utiliser ces trucs la pour stocker mes donnees, surtout quand OVH a lance son offre hubic!

hubic, c est 25Go gratuit, 100Go pour 11.84€ par an, ou illimite pour 83.60€ par an!

Premiers pas : Merci flipflip sur le site ovh-hubic-en-ligne-de-commande

Télécharger le script

git clone https://bitbucket.org/rangzen/hubicli.git cd hubicli/ python hubiC.py Votre nic-handle et votre mot de passe vous est demandé et en réponse vous obtenez : URL : https://cloudnas1.ovh.com/6z9affd86ee8486468b17be15938b82a/ Login : xxxxxx Password : xxxxxx

mount -t davfs https://cloudnas1.ovh.com/6z9affd86ee8486468b17be15938b82a/ /mnt umount /mnt Pour tester aller cd /media mkdir hubic mount -t davfs https://cloudnas1.ovh.com/6z9affd86ee8486468b17be15938b82a/ /media/hubic Renseigner le champs login et password avec les informations donnés par le script. Normalement votre répertoire devrait être monté

Vous avez plus qu'à lancer votre transfert de fichier. J'en ai profité pour faire évoluer mon script de sauvegarde.

La grosse différence entre la méthode ftp et webdav est le temps de transfert. En ftp j'avais de gros ralentissement et certaines commandes systèmes n'étaient pas prise en compte (chown par exemple ou encore conserver les users/groupes envoyé par rsync). En webdav plus de problème.




Configuration de davfs2

davfs2 est un module fuse permettant de monter la ressource hubic comme un dossier.

davfs2 a besoin de plusieurs fichiers. c est un peu penible, mais voila comment faire pour monter la ressource en tant qu utilisateur :

editer /etc/fstab pour rajouter :

https://cloudnas1.ovh.com/XXXXXXX/ /votre/repertoire/prefere/ davfs rw,user,noauto,uid=1000 0 0

pensez a modifier le UID par celui de votre utilisateur, ansi que l URL cloudnas pour avoir votre repertoire retourne par le script hubic.pl.




Creer le repertoire ~/.davfs2

copier les fichiers par defaut de davfs2 :

cp /etc/davfs2/davfs2.conf ~/.davfs2/ cp /etc/davfs2/secrets ~/.davfs2/ editer ~/.davfs2/davfs2.conf :

use_locks 0 # tres important, vous ne pourrez rien upload sans cela drop_weak_etags 0 allow_cookie 1 read_timeout 300 table_size 65535 dir_refresh 120 # seconds file_refresh 20 # second delay_upload 0 gui_optimize 1

Vous pouvez aussi modifier cache_size et cache_dir a votre convenance (surtout cache_dir, il faut que votre user ai les droits en ecriture sur le repertoire specifie).




editer ~/.davfs2/secrets :

https://cloudnas1.ovh.com/XXXXXXX/ cloudnas YYYYYYY

remplacez XXXXXXX par votre repertoire donne par le script hubic.pl, et YYYYYYY par le mot de passe qu il vous a revele.

Et voila! normalement, vous serez capables de monter votre espace hubic en faisant :

mount /votre/repertoire/webdav Attention : davfs2 n est pas multi-thread. Donc vous pourrez effectuer qu’une seule operation a la fois, il vous sera par exemple impossible de lister un repertoire tant que vous serez en train de transferer un fichier. davfs2 sera aussi bloquant tant qu il telechargera en cache un fichier, il ne vous remettra pas le fichier en meme temps! c est plutot contraignant, et l auteur de davfs2 ne semble pas motive pour effectuer toutes les modifications necessaires pour avoir un pool de connexions et mise en cache.




Configuration de encfs

Cette partie est optionnelle, elle depend du niveau de confiance que vous accordez a OVH (a peu pres 0% pour moi, cela vaut en theorie pour tout le monde).

Cela nous permettra de chiffrer directement les noms des fichiers que nous allons deposer sur hubic, ainsi que leur contenu!

Attention : hubic(webdav tout simplement ?) ne permettant pas de creer des fichiers commencant par un ‘.’, il faut ruser un peu avec encfs pour creer son fichier contenant les informations de chiffrement.

ENCFS6_CONFIG="/votre/repertoire/prefere/encfs_config_file" encfs /votre/repertoire/webdav /votre/repertoire/encfs/ La premiere fois que vous executerez cette commande, encfs vous demandera de bien vouloir configurer le type de chiffrement a utiliser. Les fois suivantes, il se contentera de vous demander le mot de passe.




Tout fonctionne

Tant mieux !

Personnellement j ai effectue cette procedure sur ma dedibox, pour qu elle mette en cache au plus vite avec hubic, et de mon cote j ai du sshfs pour dialoguer avec la dedibox. La dedibox disposant d un debit bien plus rapide que moi avec OVH, j y gagne enormement (surtout pour les gros fichiers)!




Interface web et partage de fichiers

Avoir son hubic a soit, en sshfs, c est plutot sympas, mais si l on souhaite partager un fichier a une autre personne, cela devient complique.

J ai opte pour l installation d ajaxplorer sur la dedibox, qui s install tres simplement, et il n y a plus qu a ajouter en repository votre dossier encfs!

Ensuite, vous pourrez utiliser ses fonctionnalitees pour partager des fichiers, ou encore creer des comptes a vos amis! Je vous recommande tout de meme de desactiver les previews des images (dans les settings).

Du a un defaut de conception dans ajaxplorer, chaque dossier que vous listez provoque la mise en cache de tous les fichiers dans davfs2! c est relativement inacceptable si vous avez des fichiers assez gros (vos backups de CDs par exemple …);

Pour palier a cela, j y suis alle avec une truelle, en editant /access.fs/class.fsAccessWrapper.php et allant vers la ligne 295 pour commenter :

   	if($fp = @fopen($path, "r")){

$stat = fstat($fp);

   		fclose($fp);
   		return $stat;
   	}

Ce fopen+fstat est un tueur de disponibilite … un stat() serait bien mieux, mais mes essais de patch avec un stat() aboutissent au meme probleme. Je ne sais pas pourquoi, mes competences en PHP sont proches du 0, tout fois j ai ouvert un thread chez les gens d ajaxplorer en esperant avoir de l aide.

NB : Si vous ne souhaitez pas utiliser encfs, vous pouvez monter la ressource webdav dans ajaxplorer directement! ca fonctionne, avec plus de latences que davfs2, mais logiquement le probleme de concurrence qui apparait avec davfs2 disparait!