UPLOAD de fichiers sur votre Freebox "distante" !
Free a récemment ouvert la possibilité d'accéder à l'interface de gestion de la Freebox V6 à distance.
Vous pouvez donc facilement "récupérer"
(download) des fichiers de la Freebox distante vers votre PC, via l'interface fourni par Free, cependant faire le contraire, c'est à dire
uploader un fichier se trouvant sur votre PC distant vers la Freebox est plus délicat...
... certains pensent que c'est même impossible...
Eh bien avec ce script, vous pourrez uploader des fichiers à distance sur votre Freebox
en quelques clics !..
-1) Choisir le fichier à uploader + Clic-Droit + Script / upfree
-2) Mot de passe de votre Freebox
(étape facultative si le mot de passe est configuré)
-3) Eh non, il n'y a pas de 3, le script fait le reste !
Bien sûr, le
mode texte offre davantage de possibilités et donne plus d'informations (par exemple l'estimation du temps restant) :
zakhar@zakhar-desktop:~/Images$ upfree * -t 'Disque dur/Photos'
Mot de passe de votre FreeBox :
Fichier % Total Émis Débit Temps Temps Temps Débit
Moyen Total Passé Restant Actuel
PIC_0521.JPG 100 5040k 5040k 114k --:--:-- 00:00:44 --:--:-- 114k
PIC_0522.JPG 100 4793k 4793k 114k --:--:-- 00:00:42 --:--:-- 119k
PIC_0523.JPG 100 5048k 5048k 114k --:--:-- 00:00:44 --:--:-- 119k
PIC_0524.JPG 100 5774k 5774k 117k --:--:-- 00:00:49 --:--:-- 120k
PIC_0525.JPG 24 4809k 1170k 106k 00:00:45 00:00:11 00:00:34 97.6k
-------------------------------------------------------------------------------
Total 29 71.6M 21.3M 113k 00:10:48 00:03:13 00:07:35 97.6k
________________________________________________________________
Installation minimale
- Bien évidemment, il faut avoir ouvert l'accès à distance de la Freebox V6 "distante".
- Il faut ouvrir un port sur votre PC afin que la Freebox "distante" puisse venir chercher les fichiers. Pour cela, consulter le manuel de votre routeur ou de votre box (celle sur laquelle est connecté le PC, pas celle de la Freebox "distante" !).
Par exemple, si le PC est aussi sur le réseau Free (voir ma recommandation plus bas), cela se passe sur votre console en ligne chez Free dans la catégorie Internet / Routeur.
- Copiez le script (clic-droit pour le sauvegarder) : lien vers le script upfree
... et c'est tout... si vous n'avez pas oublié de rendre le script exécutable !
Note : le script ne nécessite
PAS les droits root. Il n'écrit que dans /tmp (pour ses fichiers temporaires).
Cette première page contiendra toujours la dernière version du script !
(mes améliorations, ou vos contributions)
History
Version 1.0 du 6 novembre 2011
Version 1.0.1 du 20 novembre 2011
Version 1.0.2 du 10 novembre 2012
Version 1.0.3 du 15 décembre 2012
Version 1.1.0 du 26 janvier 2013
Version 1.2.0 du 28 avril 2013 (le présent script)
Dés-installation
Il suffit de supprimer le script de votre système.
Paramétrage recommandé
Avec le l'installation minimale ci-dessus, le script va vous demander à chaque fois une paire d'adresses IP/Port, et un répertoire en plus du mot de passe de la Freebox.
Vous pouvez fixer tout cela une fois pour toute dans un fichier de configuration.
Par défaut, ce fichier se trouve dans :
~/.config/freebox.conf
Exemple de fichier de configuration (il est "sourcé" par le script principal, c'est donc du code)
# Adresse IP et port d'accès à distance de votre Freebox V6
fbxIPPort="78.200.100.50:37373"
# Mot de passe d'accès à distance de votre Freebox V6
fbxPassword="Mot_2_passe"
# Adresse IP publique et port ouvert sur votre PC
localIPPort="82.50.100.200:45678"
# Chemin sous lequel sont vos fichiers à uploader
localWebRoot="/home/zakhar/upload-fbx"
# Si vous avez fait un forward et que le port local
# n'est pas le même que celui servi sur le PC, cette
# variable contient le port servi sur le PC
# opt_port='55555'
opt_s='y' # On demande à avoir un serveur Web le temps de l'upload
opt_d=30 # Délai d'affichage à 30sec
if [ "${opt_g}" = 'y' ]; then # Ci-dessous les options spécifiques en mode graphique
opt_f='y' # Continue/recommence un téléchargement interrompu
opt_t='/Disque dur/Vidéos' # Endroit où uploader les fichiers sur la Freebox V6
else # Ci-dessous les options spécifiques en mode texte
: # S'il n'y a pas d'option laisser le : pour eviter
# une erreur de syntaxe dans le else
fi
# Cible automatiquement les bons répertoires pour les fichiers mkv et mp3
autotargets=".*mkv$>/Disque dur/Vidéos|.*mp3$>/Disque dur/Musiques"
Utilisation en mode graphique : le script est prévu pour fonctionner automatiquement depuis Nautilus. Pour cela, le plus simple est de mettre un lien symbolique vers le script dans le répertoire prévu par Nautilus, par exemple, si vous avez mis le script dans ~/Scripts :
ln -s ~/Scripts/upfree ~/.gnome2/nautilus-scripts/Upload\ Freebox
...vous aurez ainsi, dans le menu "Scripts", une ligne intitulée "Upload Freebox"
Fonctionnement sur un NAS
... comme mon autre script
tuXtremMerge, ça devrait fonctionner sur un NAS (Synology, Qnap, ...)
EDIT : En effet, c'est un simple script qui utilise juste les utilitaires GNU.
Même mieux que tuXtremMerge, il est compatible Posix puisqu'il fonctionne avec le moteur de script par défaut d'Ubuntu : dash. Il ne devrait donc même pas être nécessaire d'installer bash sur votre NAS.
Ainsi vous pouvez envoyer un fichier de votre NAS vers la Freebox distante. Assez pratique car comme on est limité à la vitesse de l'upload, ça peut être long sur des gros fichiers, mais comme un NAS est allumé en permanence, ce n'est pas un problème !..
Si quelqu'un veut essayer sur son NAS, il est le bienvenu.
Comme j'ai acheté un NAS (Synology DS413j), le script est donc désormais totalement fonctionnel aussi sur NAS
-à compter de la 1.2.0-. Bien pratique pour économiser de l'électricité et économiser l'usure de vos PC !..
Cela nécessite cependant l'installation de deux packages (ipkg pour Synology) : coreutils et curl (libcurl).
Autres options du script
$ upfree -h
Usage : upfree [Options] Fichier [Fichiers]
Upload des fichiers sur la freebox
-c, --config Fichier de configuration (déf. ~/.config/freebox.conf )
-i, --ipfbx IP[:Port] de la freebox (déf. port 80)
-p, --password Mot de passe de connexion à la Freebox
-l, --local IP[:Port] du serveur web local (déf. port 80)
-r, --root Racine du serveur web local
-f, --force Force l'écrasement/continuation sur la freebox
-d, --display Secondes, temps entre deux affichages (défaut= 2sec)
-g, --graphic Mode graphique (automatique si lancé depuis Nautilus)
-q, --quit En mode texte, quitte à la première erreur (-g implique -q)
-s, --server Installe un serveur temporaire (échoue si le port est occupé)
-t, --target Cible pour la copie (déf. répertoire des téléchargements)
--port Port du Serveur local (utile si différent de l'option -l)
-h, --help Ce texte d'aide
-v, --verbose Mode verbeux
-V, --version Version du script
Les valeurs passées en paramètre ont priorité par rapport aux valeurs
présentes dans les fichiers de configuration.
Roadmap
... la suite, après davantage de debug et de mise en forme/commentaire du présent script, c'est de faire un "File-System-Freebox". J'ai quelques petites idées sur la façon de faire ça, mais rien de définitif encore à ce jour.