Le besoin de transférer des fichiers sur un réseau en est un qui se pose souvent. Les systèmes GNU/Linux prennent en charge plusieurs protocoles et outils pour ce faire, dont certains sont conçus pour un partage de fichiers quelque peu permanent (tels que SMB, AFP et NFS), tandis que d’autres tels que Secure Copy (SCP) sont utilisés pour un manuel rapide et scripté. transferts de fichiers. Parmi ceux-ci se trouve le protocole HTTP (HyperText Transfer Protocol), le protocole polyvalent et omniprésent sur lequel repose le World Wide Web.
Python, qui est inclus par défaut dans la plupart des distributions Linux, fournit des serveurs HTTP simples via les modules « SimpleHTTPServer » et « http.server ». Le premier se trouve dans la bibliothèque standard Python 2, tandis que le second est inclus dans Python 3. Ces serveurs HTTP légers ne nécessitent aucune installation séparée et peuvent être démarrés instantanément avec une seule commande.
Contenu
Installer Python
Votre système comprend très probablement au moins une version de Python, mais si ce n’est pas le cas, installez Python 3 à l’aide de votre gestionnaire de packages natif.
Par exemple, sur Debian et Ubuntu :
Démarrage du serveur HTTP
Notez l’adresse IP utilisée par la machine émettrice.
Découvrez quelle version de Python est installée avec les commandes suivantes :
Sur la même machine, remplacez votre répertoire de travail par celui contenant les fichiers que vous transférez. Soyez conscient du fait que tout le contenu de votre répertoire de travail actuel peut être accessible à n’importe qui sur votre réseau (ou sur Internet si la machine émettrice a une adresse IP publique), pendant que le serveur HTTP Python est en cours d’exécution.
Par exemple:
Vous pouvez maintenant démarrer le serveur HTTP. Pour Python 2.x, utilisez le module SimpleHTTPServer :
Ou http.server dans le cas de Python 3.x :
Les deux variantes écoutent sur le port 8000 par défaut, bien que vous puissiez spécifier explicitement un numéro de port différent après le nom du module.
Noter: les privilèges root sont requis si vous choisissez un port inférieur à 1024.
Téléchargement de vos fichiers
Sur la machine de réception, vous pouvez utiliser n’importe quel client HTTP pour télécharger vos fichiers. Si vous utilisez un environnement graphique, un navigateur est souvent plus pratique que les utilitaires de ligne de commande. Accédez simplement à http://IP_ADDRESS:8000, où « IP_ADDRESS » est l’adresse IP de l’ordinateur expéditeur, et cliquez sur les fichiers souhaités pour les télécharger.
Alternativement, vous pouvez utiliser Wget ou cURL pour récupérer vos fichiers. Vous devriez déjà en avoir un ou les deux installés. Si ni l’un ni l’autre ne le sont, nous vous suggérons d’installer Wget, car il est plus convivial et prend en charge le téléchargement de répertoires entiers.
Pour Debian et Ubuntu :
Pour RHEL et CentOS 6/7 :
Pour Fedora et RHEL/CentOS 8 :
Utilisation de Wget
Pour télécharger un seul fichier avec Wget, invoquez simplement Wget suivi de l’URL du fichier que vous souhaitez télécharger.
Vous pouvez également utiliser Wget pour télécharger de manière récursive l’intégralité du répertoire en ajoutant l’indicateur de ligne de commande -r.
Utiliser cURL
Par défaut, curl essaie d’imprimer le contenu du fichier sur votre terminal. Donc, pour enregistrer le fichier à la place, spécifiez un nom de fichier avec l’indicateur -o.
Conclusion
La fonctionnalité HTTP de la bibliothèque standard de Python fournit un moyen simple mais rapide et pratique de transférer des fichiers, parfait pour certains scénarios. Mais gardez à l’esprit qu’étant donné qu’il s’agit d’un simple HTTP sans cryptage ni authentification, vous devez faire attention à ne pas exposer de fichiers sensibles.
Cet article est-il utile ? Oui Non