Seite 1 von 1

Versenden großer Daten im Zusammenhang mit Django Webserver

Verfasst: Dienstag 1. Februar 2022, 06:50
von WbSrvr
Hallo Zusammen,

ich bin Anfänger bei der Verwendung von Webframeworks und möchte bevor ich mich ans Programmieren setze gerne eine Frage stellen.

Ich möchte ein Server/Client-System, das im Moment aus den socketserver Modulen gebaut ist, und per TCP Daten versendet, als Django Webserver „aufrüsten“ um die Vorteile zu nutzen. Der „Server“ ist ein Rechner der in einem Firmennetzwerk hängt und auch nicht weit weg von den Client Rechnern (jeweils ein PC = 1 Client) steht.
Dabei soll von mehreren PCs aus Anfragen an einen Server gestellt werden können, der dann Bildverarbeitungsoperationen durchführt und die Ergebnisse wieder zurückschickt. Die Anfragen und Antworten würde ich mit den Standard http-Methoden (POST, GET etc..) realisieren.
Dazu müssen unter anderem auch Videodateien gesendet werden, die auch gut und gerne mal 2 Gigabyte haben können. Jetzt zu meiner Frage:

Wie würdet ihr das Senden dieser großen Daten realisieren? (Daten müssen nur schnell und richtig ankommen, Sicherheit ist nicht so großgeschrieben, da im Firmennetz)
Kann man das mit Standard Methoden machen? Wenn ja Würdet ihr das empfehlen?


Ich würde mich über eine Antwort freuen.
Vielen Dank und Grüße

Re: Versenden großer Daten im Zusammenhang mit Django Webserver

Verfasst: Dienstag 1. Februar 2022, 12:11
von __blackjack__
@WbSrvr: Grundsätzlich sollte das einfach mit den Standard-HTTP-Methoden gehen. Man muss wegen der Grösse natürlich aufpassen, dass alle beteiligten entsprechend konfiguriert sind, also nicht irgendwo eine Dateigrössenbegrenzung konfiguriert ist. Und man muss bei den Grössen den Code so schreiben, dass nicht irgendwo die komplette Datei erst im Arbeitsspeicher gepuffert wird.

Re: Versenden großer Daten im Zusammenhang mit Django Webserver

Verfasst: Dienstag 1. Februar 2022, 14:51
von einfachTobi
In Django kann man das über StreamingHttpResponse bzw. FileResponse abbilden. Dann wird nicht die gesamte Datei in den Speicher geladen. Ich weiß nicht, ob das immer so sinnvoll ist, aber es sollte funktionieren. Im Zweifel müssen nur genügend Worker bereitstehen, weil so ein Response immer einen Worker blockiert. Die verlinkte Doku hat da mehr Details.

Re: Versenden großer Daten im Zusammenhang mit Django Webserver

Verfasst: Mittwoch 2. Februar 2022, 07:30
von WbSrvr
Danke euch erstmal für die schnelle Hilfe.
Ich sehe also, dass es durchaus Möglichkeiten gibt.
Vielleicht kennt noch jemand eine andere Möglichkeit? Dann gerne bescheid geben !
Grüße

Re: Versenden großer Daten im Zusammenhang mit Django Webserver

Verfasst: Mittwoch 2. Februar 2022, 07:31
von WbSrvr
einfachTobi hat geschrieben: Dienstag 1. Februar 2022, 14:51 In Django kann man das über StreamingHttpResponse bzw. FileResponse abbilden. Dann wird nicht die gesamte Datei in den Speicher geladen. Ich weiß nicht, ob das immer so sinnvoll ist, aber es sollte funktionieren. Im Zweifel müssen nur genügend Worker bereitstehen, weil so ein Response immer einen Worker blockiert. Die verlinkte Doku hat da mehr Details.
hallo, danke für deine Antwort. Bei meinem Fall müsste der Client an den Server große daten schicken, das wäre dann

HttpRequest.FILES

oder?

Danke dir! :)