Logo Mon Club Elec

Pyduino + Bottle : Réseau : Créer un serveur de fichiers textes contenus dans un répertoire

Pyduino + Bottle est un outil puissant qui permet de créer facilement un serveur de fichiers textes contenus dans un répertoire. Il s’agit d’une solution simple et pratique pour partager des fichiers entre plusieurs ordinateurs connectés à un réseau local. Grâce à Pyduino + Bottle, vous pouvez créer un serveur de fichiers textes qui peut être accessible depuis n’importe quel ordinateur connecté à votre réseau. Dans cet article, nous allons vous expliquer comment mettre en place un serveur de fichiers textes avec Pyduino + Bottle et comment le configurer pour le rendre accessible depuis n’importe quel ordinateur connecté à votre réseau.

Pyduino + Bottle : Réseau : Créer un serveur de fichiers textes contenus dans un répertoire

Pyduino + Bottle : Réseau : Créer un serveur de fichiers textes contenus dans un répertoire Pyduino + Bottle : Réseau : Créer un serveur de fichiers textes contenus dans un répertoire

Ce que l’on va faire ici

  • Dans ce code, je vous montre comment mettre en place un serveur donnant accès aux fichiers d’un répertoire, ici le répertoire Pyduino /data/text/, afin de pouvoir en visualiser simplement le contenu dans le navigateur.

Pré-requis

Il est également nécessaire ici d’installer Bottle et CherryPy :

sudo apt-get install python-bottle
sudo apt-get install python-cherrypy3

Schéma fonctionnel

  • Le code Pyduino communique avec l’interface réseau du système qui assure la connexion avec le client distant :
Pyduino + Bottle : Réseau : Créer un serveur de fichiers textes contenus dans un répertoire
  • Noter que ce code fonctionne aussi bien en éthernet (filaire) qu’en wifi (sans fil) sous réserve que la connexion matérielle soit opérationnelle.

Le réseau utilisé

Pyduino + Bottle : Réseau : Créer un serveur de fichiers textes contenus dans un répertoire
  • Note : le poste fixe peut évidemment être le poste depuis lequel vous accédez au pcDuino par VNC, au moins en phase d’essai.

Matériel nécessaire

Système

  • Le pcDuino
  • connecté à un réseau local actif associant :
    • un routeur (une box internet typiquement) +/- un switch réseau
    • d’autres postes sur le réseau, notamment un poste fixe ou une tablette.
    • voire un poste distant sur le web
  • Si on utilise le wifi, on utilisera le dongle wifi ou une clé USB wifi au lieu de l’interface réseau ethernet. Mais pour un simple test, rester en filaire, c’est plus simple !

E/S

  • Pas utilisées.

Instructions de montage

  • Simplement connecter le pcDuino au réseau, ce qui est normalement déjà le cas si vous travaillez en accès VNC !

Le montage à réaliser

Pyduino + Bottle : Réseau : Créer un serveur de fichiers textes contenus dans un répertoire

Le fichier *.yno

Copier/coller ce code dans l’IDE Pyduino :

# importation de modules
from bottle import route, run,template, static_file # importe classes utile du module Bottle

# entete declarative
noLoop=True # loop sera appelee par timer
port=8080 # le port de connexion

serverDir=mainPath()+dataPath(TEXT) # le répertoire à servir
files=None

#— definition des « routes » – a mettre AVANT setup
@route(‘/’) # définit une route = adresse après ip donc ip/hello/
def homepage(): # code a executer lors de l’appel ce cette url
        return initialHTML()

@route(‘/hello’) # définit une route = adresse après ip donc ip/hello/
def hello(): # code a executer lors de l’appel ce cette url
        return « Hello World! »

#– route pour gestion fichier statique
@route(‘/static/<filename:path>’)
def send_static(filename):
        print filename
        return static_file(filename, root=serverDir) # utilisation chemin relatif
        # le rep /static doit exister dans rép app *.py–
        #return static_file(filename, root=currentdir()+’static/’) # si utilisation chemin absolu

#— setup —
def setup():

        #– pour info : la liste des fichiers du répertoire —
        print serverDir

        global files
        files=listfiles(serverDir)

        if files:
                for filename in files:
                                print filename

        #timer(100,loop) # 1er appel de loop par timer – a mettre avant run – si on souhaite usage loop

        run(host=Ethernet.localIP(), port=8080, server=‘cherrypy’) # lance le serveur – attention : a mettre apres les routes..

# — fin setup —

# — loop —
def loop():

        # ici instruction loop
        print « loop »

        timer(1000, loop) # autorappel de loop

# — fin loop –

#—- fonctions utilisées par les routes
def initialHTML():

        pageHTML=« Serveur Pyduino+Bottle Online ! »

        global files

        if files:
                for f in files:
                        pageHTML=pageHTML+« <br> <a href= »http://web.archive.org/static/ »+f+«  »> »«  »+f+« </a> \n« 

        return pageHTML

 

Ce code est également disponible ici :

Utilisation

  • Connecter le mini-PC au réseau
  • Appuyer sur le bouton exécuter dans l’IDE Pyduino
  • Une fenêtre de Terminal doit apparaître : un message indique que le serveur attend un client entrant.
  • Ouvrir alors sur le poste client un navigateur, par exemple firefox, et saisir l’adresse ip du mini-PC suivie de :8080 ce qui donne par exemple 192.168.0.8:8080. On utilise ici le port 8080 d’où le :8080…
  • A ce moment là, on doit voir sur le mini-PC les messages attestant de la connexion du client
  • Puis le serveur envoie sa réponse : ici la liste des fichiers contenus dans le répertoire « /data/text/ » est affichée sous forme de liens cliquables pour voir le contenu du fichier.
Pyduino + Bottle : Réseau : Créer un serveur de fichiers textes contenus dans un répertoire Pyduino + Bottle : Réseau : Créer un serveur de fichiers textes contenus dans un répertoire
  • Noter que le poste fixe peut simultanément accéder au mini-PC par VNC (qui utilise le port 5900) et par le navigateur client ( qui utilise le port 8080) !
  • Simple et efficace.

Discussion technique

  • Un mini-serveur « façon Apache » qui utilise Bottle et Pyduino…
Noter cet article

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Archive Mon Club Elec

Articles populaires

Newsletter

Inscrivez-vous maintenant et bénéficiez d'un soutien continu pour réaliser vos travaux électriques en toute sécurité.