# -*- coding: utf-8 -*- """Sert les visuels de démonstration sur http://localhost:8099. `POST /api/Resource/upload` n'écrit que des métadonnées : le fichier lui-même vit dans le bucket Firebase, où c'est `manager-app` qui le dépose depuis le navigateur. Un script qui parle à l'API n'a donc aucun moyen d'y placer un blob. Les ressources de démonstration sont créées en type `ImageUrl` et pointent ici. **Ce serveur doit tourner pendant les captures**, sinon les images ne s'affichent pas. """ import http.server from pathlib import Path PORT = 8099 ROOT = Path(__file__).resolve().parent / "images" class Handler(http.server.SimpleHTTPRequestHandler): # Next demande une dizaine de visuels en parallèle : en HTTP/1.0 chaque # image ouvre puis ferme sa propre connexion, ce qui multiplie les allers-retours. protocol_version = "HTTP/1.1" def __init__(self, *args, **kwargs): super().__init__(*args, directory=str(ROOT), **kwargs) def end_headers(self): # manager-app et visitapp-web tournent sur d'autres origines. self.send_header("Access-Control-Allow-Origin", "*") self.send_header("Cache-Control", "public, max-age=3600") super().end_headers() def log_message(self, *args): pass if __name__ == "__main__": http.server.ThreadingHTTPServer.allow_reuse_address = True with http.server.ThreadingHTTPServer(("127.0.0.1", PORT), Handler) as httpd: print(f"visuels servis sur http://localhost:{PORT} depuis {ROOT}") httpd.serve_forever()