OVH Community, votre nouvel espace communautaire.

client Hubic (1 de plus...)


Gaston_Phone
23/01/2013, 21h34
Merci Diway.

Diway
23/01/2013, 21h32
Hello,

J'avais commencé un client hubic en python mais suite aux nouvelles offres je n'ai plus vraiment l'intention d'utiliser Hubic et donc de poursuivre les devs (j'avais parié que les offres illimitées déjà souscrites le resterait, pari perdu ). Donc voilà le produit en l'état...

C'est du python 3.2 + module pycrypto 2.6 + urllib3 (intégré aux sources)
Ca a été pensé pour tourner sur linux mais devrait pouvoir s'adapter pour tourner sous Windows (y a du boulot qd même)

Pour résumer, l'idée était un mini clone de lftp (client ftp en ligne de commande) mais adapté à Hubic avec possibilité d'uploader des fichiers
- soit de manière "standard"
- soit crypté (noms et contenus cryptés en AES256) mais que ce soit transparent pour l'utilisateur bien entendu . Pas que j'ai pas confiance en OVH mais bon...

les commandes qui fonctionnent normalement aujourd'hui:
- ls: liste le contenu d'un rep distant (hubic), on peut utiliser des wildcards 'ls c*' et des chemins relatifs (comme pour le 'ls' sous linux quoi)
- !ls : idem que ls mais en local (le code est pas à jour par rapport à 'ls' donc toutes les options ne doivent pas marcher)
- cd: change le répertoire courant distant
- lcd : change le répertoire courant local
- hub : liste les hubs existants (les hubs qui finissent par _segments sont des hubs techniques OpenStack, évitez d'aller dedans , si utilisé avec un paramètre change le hub courant ('hub toto' par ex)
- mkhub : crée un nouveau hub
- rmhub : supprimer un hub (gaffe, pas de confirmation)
- mkdir : crée un répertoire distant
- put : transfert un fichier local vers le répertoire hubic courant
- mput : transfert plusieurs fichiers grace à l'utilisation de wildcards ('mput *.mp3' pour télécharger tous vos mp3)
- get : récupère le fichier indiqué
- rm : efface un fichier. avec 'rm -r' on peut effacer récursivement
- mrm : idem que rm mais autorise les wildcards. 'mrm *.mp3' efface tous les mp3 dans le répertoire courant, 'mrm -r *.mp3' fait de même mais dans tous les sous-répertoires également, assez dangereux donc
- sync : synchronise le répertoire local avec le répertoire distant (y compris les sous-répertoires)

remarques diverses:
- tout n'a pas été testé à fond donc à vos risques et périls
- le mot de passe est redemandé toutes les 24h et vos infos de connexions sont stockées dans le fichier config.ini
- le choix fichier clair / fichier crypté se fait par hub uniquement (un hub complet est clair ou crypté, on peut pas mixer les 2 par hub)
- le code pour créer un hub crypté est pas fait, il manque vraiment pas grand chose (cf ligne 257 de backend_hubic_swift.py pour l'idée de base, bon point de démarrage pour un nouveau dev mais tout le reste et opérationnel normalement
- les clés de cryptage sont aujourd'hui en dur dans le fichier backend_hubic_swift.py, ligne 62 => faut coder un générateur / stockage
- l'upload / download de très gros fichiers ne devrait pas poser de pb, ça a été pensé pour ça logiquement
- last but not least, c'est mon premier soft en python, j'ai fait ça aussi pour apprendre le langage donc codeurs python expérimentés, soyez indulgents !

pour le télécharger, c'est ici: http://demo.ovh.com/download/895101e...pyhubic.tar.gz