Le transfert de fichiers entre un ordinateur et un mobile peut se faire de différentes manières et en utilisant différents protocoles. Aujourd'hui, nous verrons une toute nouvelle approche, différente. Ce guide explique comment transférer des fichiers entre ordinateurs et appareils mobiles en scannant des codes QR. Oui, tu l'as bien lu! Dites bonjour à Qrcp , anciennement connu sous le nom de Qr-filetransfer , une simple application de transfert de fichiers en ligne de commande utilisée pour envoyer et recevoir des fichiers via WiFi entre un système Linux et un téléphone mobile en scannant un code QR, sans quitter le Terminal.
Lors de l'envoi de fichiers, Qrcp liera un serveur Web à l'adresse de votre carte d'interface réseau WiFi sur un port aléatoire et créera un gestionnaire pour celui-ci. Le gestionnaire par défaut servira le contenu et quittera le programme une fois le transfert terminé. De même, lors de la réception de fichiers, qrcp
sert une page de téléchargement et gère le transfert.
Qrcp est un programme gratuit et open source écrit en Go langage de programmation et est publié sous MIT licence.
Installer Qrcp sur Linux
Qrcp peut être installé de plusieurs façons. Installez Qrcp sous Linux en utilisant l'une des méthodes suivantes.
Installer Qrcp avec Golang
Tout d'abord, installez le langage de programmation Go dans votre système Linux comme décrit dans le lien suivant.
- Comment installer le langage Go sous Linux
Après avoir installé Golang, exécutez la commande suivante pour installer Qrcp sur votre système Linux :
$ go get github.com/claudiodangelis/qrcp
Installer Qrcp à partir des binaires
Téléchargez le dernier fichier d'archive Qrcp depuis la page des versions . Au moment de la rédaction de ce guide, la dernière version était 0.7.0 .
$ wget https://github.com/claudiodangelis/qrcp/releases/download/0.7.0/qrcp_0.7.0_linux_x86_64.tar.gz
Extrayez l'archive téléchargée à l'aide de commad :
$ tar xf qrcp_0.7.0_linux_x86_64.tar.gz
Déplacez le fichier binaire vers votre $PATH
:
$ sudo mv qrcp /usr/local/bin
Enfin, définissez l'autorisation exécutable :
$ sudo chmod +x /usr/local/bin/qrcp
Veuillez noter que la dernière étape est facultative. Vous n'êtes pas obligé de le rendre exécutable. Dans ce cas, le fichier deviendra exécutable après l'avoir déplacé vers votre chemin.
Installer Qrcp en utilisant les gestionnaires de paquets
Qrcp est disponible en AUR.
- qrcp-bin
- qrcp
Vous pouvez l'installer en utilisant n'importe quel assistant AUR, par exemple Yay .
$ yay -S qrcp
Ou,
$ yay -S qrcp-bin
Qrcp est également disponible en tant que .deb
et .rpm
des dossiers. Accédez à la page des versions et téléchargez la version adaptée à votre distribution.
Si vous êtes sur des systèmes basés sur Debian, téléchargez le .deb
fichier d'installation à partir de la page des versions et installez-le comme ci-dessous.
$ sudo apt install gdebi
$ sudo gdebi qrcp_0.7.0_linux_x86_64.deb
Sur les systèmes basés sur RPM, tels que CentOS, RHEL, téléchargez le .rpm
fichier à partir de la page des versions et installez-le comme ci-dessous :
$ sudo dnf install qrcp_0.7.0_linux_x86_64.rpm
Ou,
$ sudo rpm -ivh qrcp_0.7.0_linux_x86_64.rpm
Une fois installé, confirmez si Qrcp fonctionne en exécutant cette commande :
$ qrcp version
qrcp 0.7.0 [date: 2020-10-08T13:30:56Z]
Transférer des fichiers entre ordinateurs et appareils mobiles à l'aide de Qrcp en scannant des codes QR
Transférer des fichiers entre ordinateurs et mobiles avec Qrcp est assez simple !
Pour les besoins de ce guide, j'utiliserai le système de bureau Ubuntu 20.04 LTS et une tablette PC Android.
Assurez-vous d'avoir installé une application de lecture de code QR sur votre téléphone mobile. Il existe de nombreux lecteurs de code QR disponibles pour Android. Veuillez effectuer une recherche rapide sur le Web et installer le lecteur de code QR de votre choix sur votre mobile.
Envoyer des fichiers d'un ordinateur à un mobile à l'aide de Qrcp
Voyons d'abord comment envoyer un fichier d'un système Linux vers un mobile.
Je vais envoyer un fichier image de mon bureau Ubuntu vers la tablette PC en utilisant la commande :
$ qrcp ostechnix.png
Lorsque vous lancez Qrcp pour la première fois, il analyse votre système pour trouver le nombre d'interfaces réseau WiFi disponibles dans votre système. S'il y a plus d'une carte WiFi appropriée disponible, Qrcp vous demandera d'en choisir une pour transférer les fichiers. Dans mon cas, j'ai choisi l'interface sans fil, c'est-à-dire wlp9s0
. Appuyez sur la touche ENTER pour accepter l'interface sans fil. Qrcp se souviendra de ce choix et ne le demandera pas la prochaine fois.
Use the arrow keys to navigate: ↓ ↑ → ←
? Choose interface:
▸ wlp9s0 (192.168.225.37)
virbr0 (192.168.122.1)
mpqemubr0 (10.39.86.1)
any (0.0.0.0)
Vous verrez maintenant un code QR dans votre terminal comme indiqué ci-dessous.
✔ wlp9s0 (192.168.225.37)
Scan the following URL with a QR reader to start the file transfer:
http://192.168.225.37:41377/send/7jwi
█████████████████████████████████████
█████████████████████████████████████
████ ▄▄▄▄▄ ██▄ ▄███▄▄█▀▄▄█ ▄▄▄▄▄ ████
████ █ █ █ ▀▀ ██▄█▄▀██▄█ █ █ ████
████ █▄▄▄█ █ ██▄█ █▀▄█ █ █▄▄▄█ ████
████▄▄▄▄▄▄▄█ ▀▄█▄▀▄▀▄█ █ █▄▄▄▄▄▄▄████
████ ▀ ▄▄▄█▀▀▀███▄ ▄█▀ █▀ ▄▄█▀████
████▀█▄ ▀▄▄ ██ ▀█▀█▀▀ ▀▀▄▀ ▀██▀█████
████▀▀▄▄▄▀▄▄▀█▄▀█▀▀▄ █▄▄▀ ▀▄▄▄ █▀████
████ █▀ █▄▀▀ █ █ ▄▄ ▄█ █ ▀█ █▄▀█████
████ █▀ ██▄▄▄▄█ ▀█▄▄█▄▄█ █▄█▀▀ █▀████
████ █▄█▀▄▄▄█ █ ▄█▀█▀▄▀▀▀█▄█ ▄▄▀█████
████▄█▄▄▄▄▄▄ ▄▄▀▀▀▀▄ ██▀ ▄▄▄ ▀ ████
████ ▄▄▄▄▄ █▀▄█▀█ ▄▄▄ ▀ █▄█ ▄▄█▀████
████ █ █ █ ▀▀▄█▄▄ ▄▀ ▄ ▄█▀█████
████ █▄▄▄█ █▄▄█▀ ▄██▄▀▄ ▀█▄▀██ █████
████▄▄▄▄▄▄▄█▄█▄█▄▄▄▄█████▄█▄█████████
█████████████████████████████████████
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Maintenant, ouvrez l'application de lecteur de code QR sur votre téléphone mobile et scannez le code QR affiché dans le terminal de l'ordinateur Linux. Après avoir scanné le code QR, vous verrez l'URL de téléchargement sur votre téléphone mobile. Cliquez simplement dessus pour télécharger le fichier.
Le fichier sera téléchargé dans le dossier de téléchargement par défaut de votre mobile.
Vous pouvez également envoyer plusieurs fichiers :
$ qrcp file1 file2
Et un dossier entier peut être envoyé comme ci-dessous :
$ qrcp ~/Documents/
Si la taille du fichier est importante, il suffit de le compresser et de l'envoyer avec --zip
drapeau :
$ qrcp --zip movie.mp4
Recevez des fichiers d'un mobile à un ordinateur à l'aide de Qrcp
Pour envoyer un fichier sur votre ordinateur depuis votre appareil mobile, exécutez la commande suivante dans le terminal de votre système Linux :
$ qrcp receive
Vous verrez le code QR dans le terminal :
Scan the following URL with a QR reader to start the file transfer:
http://192.168.225.37:35221/receive/3xiz
█████████████████████████████████████
█████████████████████████████████████
████ ▄▄▄▄▄ ██ █ ▀ ▄██ ▄█ ▄▄▄▄▄ ████
████ █ █ █ ▀█▄▀ ▄▀▄█▄▄██ █ █ ████
████ █▄▄▄█ █ ▄█ ██▄▀▄▀█▀█ █▄▄▄█ ████
████▄▄▄▄▄▄▄█ █ ▀▄█▄█ █ ▀▄█▄▄▄▄▄▄▄████
████ ▀▄▄▄ ▄▀█▄ █ ▀█▄▄█▀▀█▀ ▄▄█▀████
████ ▄▄▀▀█▄ █▄▀▄▄ ▄▄▄▀ ▀▀▄▀ ▀██▀█████
██████▀█▄▄▄▀█ ▄█ █▄▄ █▀▄▀ ▀▄▄▄ █▀████
████▄ █ █▄▄█ █▀██▄█ █ ▀█ █▄▀█████
████ ▀▀▀█▀▄▀▀▀▀█▄▀▀ ▄ █ █▄█▀▀ █▀████
████ █ ▀▀█▄ █ █▀ ▄▄▀▄▀▀▀█▄█ ▄▄▀█████
████▄█▄██▄▄█ ▄ ▄▀█▄▄▀██▀ ▄▄▄ ▀ ████
████ ▄▄▄▄▄ █▀█▄█▄█▀▄ ▄▀ █▄█ ▄▄█▀████
████ █ █ █ █▀▀▀ ▄▄▄ ▄ ▄█▀█████
████ █▄▄▄█ █▄██▄█▄██▀▄▀▄ ▀█▄▀██ █████
████▄▄▄▄▄▄▄█▄▄▄▄███▄▄████▄█▄█████████
█████████████████████████████████████
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Ouvrez le lecteur de code QR de l'appareil mobile et scannez le code QR ci-dessus. Cliquez sur l'URL pour télécharger les fichiers depuis votre mobile :
Une nouvelle fenêtre de navigateur s'ouvrira sur votre mobile. Choisissez les fichiers que vous souhaitez envoyer de votre mobile vers votre ordinateur et cliquez sur le bouton Transférer :
Une fois le transfert de fichier réussi, vous verrez le message suivant sur votre appareil mobile :
Sur votre terminal Linux, vous verrez le message suivant une fois le transfert de fichier terminé :
Transferring file: /home/sk/IMG-20201017-WA0002.jpg
/home/sk/IMG-20201017-WA0002.jpg[===============================================] 99.74% 0s
File transfer completed
Comme vous pouvez le voir, le fichier est téléchargé dans le répertoire courant. Si vous souhaitez recevoir les fichiers dans un répertoire spécifique, utilisez le --output
drapeau :
$ qrcp receive --output=~/Downloads
Dans ce cas, tous les fichiers seront téléchargés dans le dossier ~/Downloads
répertoire.
Options QRCP
QRCP ne nécessite aucune configuration. Par défaut, Qrcp fonctionnera immédiatement sans aucune configuration préalable. Vous pouvez cependant modifier la fonctionnalité de Qrcp de certaines manières à l'aide des paramètres Qrcp. Par exemple, vous pouvez utiliser un port spécifique au lieu d'un port aléatoire, spécifier l'emplacement du fichier de configuration, utiliser une carte d'interface réseau spécifique pour le transfert de fichiers, utiliser des URL personnalisées pour envoyer/recevoir des fichiers, utiliser FQDN au lieu de l'adresse IP, imprimer le code QR dans navigateur, garder le serveur actif et transférer des fichiers en toute sécurité via HTTPS, etc.
Configurer QRCP
Le fichier de configuration par défaut est stocké dans $HOME/.qrcp.json
. Qrcp lira et utilisera les paramètres définis dans ce fichier lors du transfert de fichiers.
Vous pouvez afficher les paramètres actuellement configurés en utilisant cat
commande :
$ cat $HOME/.qrcp.json
{
"fqdn": "",
"interface": "wlp9s0",
"port": 0,
"keepAlive": false,
"path": "~/Desktop",
"secure": false,
"tls-key": "",
"tls-cert": ""
}
Nous pouvons configurer les paramètres par défaut de Qrcp à notre guise en exécutant la commande suivante :
$ qrcp config
Choisissez l'interface réseau sans fil appropriée à utiliser pour le transfert de fichiers :
? Choose interface:
mpqemubr0 (10.39.86.1)
▸ wlp9s0 (192.168.225.37)
virbr0 (192.168.122.1)
any (0.0.0.0)
Si vous ne voyez pas les interfaces réseau pour une raison quelconque, utilisez plutôt la commande suivante :
$ qrcp --list-all-interfaces config
Saisissez le nom complet (FQDN) :
✔ Choose fully-qualified domain name: sk.ostechnix.example
Choisissez un port aléatoire :
✔ Choose port, 0 means random port: 8080
Si vous souhaitez utiliser un port aléatoire, appuyez simplement sur 0
(zéro).
Entrez le chemin de destination pour enregistrer les fichiers/dossiers :
✔ Choose path, empty means random: ~/Downloads
Par défaut, Qrcp enregistrera les fichiers/dossiers reçus dans le répertoire courant.
Choisissez si vous voulez garder le serveur actif après le transfert de fichiers :
? Should the server keep alive after transferring?:
▸ No
Yes
Sélectionnez l'option appropriée si vous souhaitez transférer le fichier en toute sécurité :
? Should files be securely transferred with HTTPS?:
▸ No
Yes
Si vous choisissez "Oui", vous devrez entrer votre chemin de certificat TLS et votre clé de certificat TLS.
Après la mise à jour du fichier de configuration, la configuration par défaut sera mise à jour avec les nouvelles valeurs.
Configuration updated:
{
"fqdn": "sk.ostechnix.example",
"interface": "wlp9s0",
"port": 8080,
"keepAlive": false,
"path": "~/Downloads",
"secure": false,
"tls-key": "",
"tls-cert": ""
}
Qrcp utilisera ces nouvelles valeurs lors du transfert de fichiers.
Vous pouvez également utiliser manuellement des paramètres personnalisés au lieu des paramètres existants définis dans le fichier de configuration.
Utiliser un port personnalisé
Qrcp utilisera n'importe quel port aléatoire disponible lors de l'envoi et de la réception de fichiers entre votre ordinateur et l'appareil mobile. Si vous souhaitez utiliser un certain port, par exemple 8080
, lors du transfert de fichiers, utilisez --port
ou -p
drapeau :
$ qrcp --port 8080 file.txt
Spécifiez l'emplacement du fichier de configuration
Comme indiqué précédemment, le fichier de configuration par défaut est stocké dans $HOME/.qrcp.json
. Si vous souhaitez utiliser un fichier de configuration stocké à un emplacement différent, spécifiez son chemin à l'aide de --config
drapeau :
$ qrcp --config ~/Downloads/qrcp.json file.txt
Utiliser une interface Wi-Fi spécifique pour le transfert de fichiers
Si plusieurs interfaces Wi-Fi appropriées sont disponibles dans votre système, vous pouvez utiliser une interface Wi-Fi spécifique pour le transfert de fichiers à l'aide de --interface
(ou -i
) drapeau :
$ qrcp -i wlp9s0 file.txt
Attribuer un chemin spécifique pour les URL
Qrcp utilise par défaut les formats d'URL suivants pour envoyer et recevoir des fichiers :
- envoyer -
http://{ip address}:{port}/send/{random path}
- recevoir -
http://{ip address}:{port}/receive/{random path}
Si vous souhaitez utiliser un chemin spécifique pour les URL, au lieu d'un chemin aléatoire, utilisez le --path
drapeau :
$ qrcp --path=abcd file.txt
Maintenant, l'URL résultante sera :
$ http://{ip address}:{port}/send/abcd
Utiliser FQDN au lieu de l'adresse IP
Par défaut, Qrcp utilisera l'adresse IP de votre système Linux dans l'URL. Si vous souhaitez utiliser un nom complet au lieu de l'adresse IP dans l'URL, utilisez le --fqdn
(ou -d
) drapeau :
$ qrcp --fqdn ostechnix.example -i wlp9s0 -p 8080 file.txt
Imprimer le code QR dans le navigateur
Qrcp générera le code QR dans le Terminal. Si vous souhaitez imprimer le QR en dehors de la fenêtre du terminal, utilisez le --browser
drapeau.
$ qrcp --browser file.txt
Cette commande imprimera toujours le code QR dans le terminal, mais affichera également le code QR dans la nouvelle fenêtre de votre navigateur Web par défaut.
Gardez le serveur en vie
Une fois le transfert de fichier terminé, la connexion sera fermée automatiquement. Ainsi, les autres appareils ne peuvent plus accéder à ce fichier/dossier. Si vous souhaitez transférer le même fichier/dossier sur plusieurs appareils, maintenez le serveur actif à l'aide de --keep-alive
drapeau :
$ qrcp --keep-alive file.txt
Obtenir de l'aide
Pour afficher la liste des sous-commandes disponibles et les drapeaux, exécutez :
$ qrcp --help
Usage:
qrcp [flags]
qrcp [command]
Available Commands:
completion Generate completion script
config Configure qrcp
help Help about any command
receive Receive one or more files
send Send a file(s) or directories from this host
version Print version number and build information.
Flags:
-b, --browser display the QR code in a browser window
-c, --config string path to the config file, defaults to $HOME/.qrcp
-d, --fqdn string fully-qualified domain name to use for the resulting URLs
-h, --help help for qrcp
-i, --interface string network interface to use for the server
-k, --keep-alive keep server alive after transferring
-l, --list-all-interfaces list all available interfaces when choosing the one to use
--path string path to use. Defaults to a random string
-p, --port int port to use for the server
-q, --quiet only print errors
-s, --secure use https connection
--tls-cert string path to TLS certificate to use with HTTPS
--tls-key string path to TLS private key to use with HTTPS
-z, --zip zip content before transferring
Use "qrcp [command] --help" for more information about a command.