Transfert de fichier simple entre deux périphériques sans Bluetooth

Posté par  . Édité par Davy Defaud, Xavier Teyssier et palm123. Modéré par Pierre Jarillon. Licence CC By‑SA.
Étiquettes :
34
13
nov.
2017
Mobile

Qui ne s’est pas déjà retrouvé bête avec deux périphériques ultra‐connectés (ordiphone, PC…) dans les mains sans pouvoir transférer un fichier de l’un à l’autre, rapidement et simplement (sans sortir ses outils en console ou faire appel à un Nuage), dans le cas où un des périphériques n’a pas le Bluetooth ?
Cette dépêche présente brièvement deux outils pour répondre à ce besoin : woof et ShareViaHttp.

Prérequis

  • les deux périphériques doivent être accessibles dans un même réseau (généralement, le besoin, c’est dans le réseau local, mais ça marche sur Internet) ;
  • au moins un des périphériques doit tourner sous Android ou GNU/Linux ;
  • côté GNU/Linux, l’intégration a été réalisée et testée avec Thunar, mais elle doit pouvoir s’adapter facilement à d’autres gestionnaires de fichiers ;
  • principales dépendances : Python et Zenity (facultatif).

Les outils

woof fournit un serveur Web minimal pour servir un fichier que vous passez en argument. Le projet n’a pas l’air très vivant, mais le code fourni répond au besoin et il existe un paquet Debian.

Share via HTTP est une appli pour Android, libre et disponible sur le marché libre F-Droid. Elle permet de la même manière de servir rapidement un fichier présent sur un périphérique Android.

Configuration

  • côté Android  : rien à faire, l’option de partage « Share via HTTP » apparaît automatiquement dans les navigateurs de fichiers lorsque vous sélectionnez un ou plusieurs fichiers ;
  • côté GNU/Linux : woof étant un script Python, un petit script d’habillage permet de faciliter son utilisation en l’intégrant dans Thunar :
#!/bin/sh
# partage d’un fichier avec Woof et affichage d’un popup rappelant l’adresse d’accès.
PORT=9999
MON_IP_PRIVE=`ip addr | awk '/inet / {sub(/\/.*/, "", $2); print $2}' |grep 192`
MON_IP_PUB=`wget -qO- http://ipecho.net/plain`
FICHIER=$1

echo "Partage de « $FICHIER » avec Woof."

woof -p $PORT $FICHIER &

CODE_SORTIE=$?
echo "Code de sortie : $CODESORTIE"

#Affichage de la fenêtre
zenity --title="Partage d’un fichier" --info --text="Fichier « $FICHIER » disponible via http://$MON_IP_PRIVE:$PORT ou http://$MON_IP_PUB:$PORT."&

Maintenant, on peut faire le lien dans Thunar de manière à pouvoir appeler le script par un clic droit sur le fichier à partager. Pour cela, il faut passer par Édition > Configurer les actions personnalisées… > Ajouter une nouvelle action personnalisée.
Indiquer dans la commande le chemin d’accès au script et vérifier dans l’onglet Conditions d’apparition que tous les types de fichiers sont bien cochés.

Création d’une action personnalisée dans Thunar

Utilisation

Une fois que tout est configuré, il suffit de partager d’un côté, puis de se connecter avec votre navigateur (voire wget) sur l’adresse IP et le port indiqué par ShareViaHTTP ou woof.

Aperçu du partage avec woof et le script d’habillage utilisé dans Thunar

L’action Partager est maintenant disponible par un clic droit sur n’importe quel fichier dans Thunar

Un fenêtre surgissante est affichée pour rappeler l’adresse à rentrer sur le deuxième périphérique

Aperçu du partage côté Android avec ShareViaHTTP

Aperçu côté Android


Nota :

  • ShareViaHTTP permet de partager plusieurs fichiers en même temps en créant une archive ZIP ;
  • si vous avez besoin de transférer un fichier depuis chez votre amie Michue ayant un périphérique utilisant Windows par exemple, il est possible d’utiliser woof en mode upload ;
  • le port par défaut est 9999, ce qui est facile à retenir.

Aller plus loin

  • # Python

    Posté par  (site web personnel) . Évalué à 10.

    Solution qui marche « Out of The Box » sur la plus part des systèmes Linux (à part Linux void, quelle distribution n'a pas python en standard ?) :
    python3 -m http.server 8000

    Ou pour les vieux systèmes (coucou RHEL6) :
    python2 -m SimpleHTTPServer 8000

    Et pouf ! Un webserver qui sert le dossier courant sur le port 8000 !

    • [^] # Re: Python

      Posté par  . Évalué à 0.

      @killruana le monde est petit hein ;)

  • # Autorisations

    Posté par  . Évalué à 5.

    J'ai voulu installer "Share via HTTP" sur mon smartphone, et il m'a demandé l'accès à mes contact… ça lui sert à quoi ?

    Personnellement, j'utilise "Wifi File Transfer" qui ne nécessite aucune manip côté ordi et ne me demande rien de bizarre, mais ce n'est sans doute pas libre…

    • [^] # Re: Autorisations

      Posté par  . Évalué à 1.

      Le partage de contacts, à la demande de l'utilisateur, fait partie des fonctionnalités de « Share via HTTP » (cf la politique de vie privée accessible dans le menu de l'appli pour les précisions).

      aussi sur le salon xmpp:linuxfr@chat.jabberfr.org?join

    • [^] # Re: Autorisations

      Posté par  (Mastodon) . Évalué à 1.

      L'avantage des applications sur F-droid c'est que tu as accès au code source :)
      Du coup tu peux:

      • savoir pourquoi est-ce qu'il demande les droits pour accéder à tes contactes
      • recompiler l'application sans cette autorisation
  • # KDE Connect

    Posté par  (Mastodon) . Évalué à 10.

    Pour ceux qui tournent sous KDE (et pour les autres je suppose, au prix de se tirer un bon paquet de dépendances), il y a KDE connect. On installe un client Android sur son téléphone, et dès que le téléphone est sur le réseau local, on profite de qques gadgets fort pratiques :
    - notifications qui apparaissent sur l'ordi
    - copier/coller
    - affichage du niveau de batterie
    - faire sonner à distance
    - et bien sûr partage de fichiers

    En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.

    • [^] # Re: KDE Connect

      Posté par  (site web personnel) . Évalué à 7.

      Et aussi :
      - mise en pause musique/vidéo PC sur appel entrant
      - télécommande du PC depuis le client Android (notamment télécommande musique/vidéo)
      - réponse aux SMS depuis le PC

      Le PC peut être associé à plusieurs Android en même temps, et le client Android peut facilement passer d'un PC à un autre.

      Vraiment très bon, une des applications phare de KDE.

  • # DUKTO !

    Posté par  . Évalué à 5.

    http://www.msec.it/blog/?p=746

    Dukto.deb

    Le choix du ppa.

    Pour rappel, Dukto permet le partage sur un même réseau, quelque soit l'appareil et quelque soit le système d'exploitation.
    Un simple glisser/déposer du fichier/dossier sur l'icône du périphérique avec lequel échanger est suffisant.

    • [^] # Re: DUKTO !

      Posté par  . Évalué à 3.

      Dukto est également disponible dans Arch (Aur)

      Poster une information ne signifie pas nécessairement adhésion

  • # Amaze

    Posté par  . Évalué à 1.

    Amaze (navigateur de fichier Android dispo sur F-droid) propose aussi le lancement d'un serveur FTP en local sur le téléphone. Ensuite, n'importe quel client FTP marchera pour envoyer les fichiers

    • [^] # Re: Amaze

      Posté par  . Évalué à 1.

      Merci pour cette information qui correspond tout a fait à mes besoins :)

  • # Primitive ftpd (FTP + SFTP)

    Posté par  . Évalué à 1.

    Il y a aussi Primitive ftpd sur F-droid, qui fait FTP (pour les cas extrême), mais surtout SFTP (le SFTP de SSH, pas FTPS)

  • # son

    Posté par  (site web personnel) . Évalué à 3.

    un transfer de fichiers via le son, est-ce possible?

    • [^] # Re: son

      Posté par  . Évalué à 5.

      Oui, avec un modem 56k

      • [^] # Re: son

        Posté par  . Évalué à 2.

        Oui, avec un modem 56k

        Tout dépend si on considère les doux cris d'agonie du modem comme du "son" ou du "bruit"… Sinon il reste encore la stéganophonie avec une œuvre musicale comme "Stairway to Heaven". Je dis ça et je dis rien…

    • [^] # Re: son

      Posté par  (site web personnel) . Évalué à 1.

      Classiquement avec un signal contenant une porteuse modulé en fréquence. Mais si on reste dans le spectre de l'audible ( 20 Hz - 20 kHz ) je ne suis pas sur que l'on puisse émettre à un débit satisfaisant, d'après quelques notes 20 kbits / seconde … même en zippant ton archive ça sera long pour transférer les vidéos de la journée !

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.