Definierte Datei über SimpleHTTPServer freigeben

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
dualsbiker
User
Beiträge: 5
Registriert: Dienstag 2. Dezember 2014, 09:17

Hallo,

ich möchte einen kleinen Webserver schreiben, der nach dem Aufruf eine bestimmte Datei in einem bestimmten Ordner freigibt. Bisher habe ich über Pythons SimpleHTTPServer folgendes erreicht:

- über den Befehl "python -m SimpleHTTPServer 8000" konnte ich die Dateien, die sich in dem Ordner befinden in dem ich den Befehl ausgeführt habe freigeben. Also über einen Browser abrufen.
- ebenso habe ich ein python-script geschrieben, das im Endeffekt nichts anderes macht als der Befehl. Dieses Script liegt nun in dem Ordner, in dem sich die freizugebende Datei befindet. Ein Aufruf des Scripts aus einem beliebigen Ordner hat auch nur wieder zur Folge, dass der Ordner freigegeben wird in dem ich das Script aufrufe.

Also wie schaffe ich es, dass immer der selbe bestimmte Ordner, bzw. die selbe bestimmte Datei freigegeben wird ?
Sirius3
User
Beiträge: 17754
Registriert: Sonntag 21. Oktober 2012, 17:20

@dualsbiker: man kann auch Pfade absolut angeben.
dualsbiker
User
Beiträge: 5
Registriert: Dienstag 2. Dezember 2014, 09:17

OK, aber an welcher Stelle mache ich das ?
dualsbiker
User
Beiträge: 5
Registriert: Dienstag 2. Dezember 2014, 09:17

OK, Problem gelöst, ein Kollege hat mir gerade die Lösung geliefert. Über "os.chdir" konnten wir das Arbeitsverzeichnis ändern.
Sirius3
User
Beiträge: 17754
Registriert: Sonntag 21. Oktober 2012, 17:20

@dualsbiker: das ist keine Lösung. Damit änderst Du einen globalen Zustand des Programms, was an anderer Stelle zu Problemen führen könnte. Vielleicht willst Du ja mal zwei Dateien aus unterschiedlichen Verzeichnissen freigeben.
dualsbiker
User
Beiträge: 5
Registriert: Dienstag 2. Dezember 2014, 09:17

In der Beschreibung von simplehttpserver steht jedoch, dass nur das aktuelle und die darunterliegenden Verzeichnisse freigegeben werden. Wie kann ich also auf bestimmte Dateien verweisen ?
Antworten