Upload von 200 Dateien mit einer Datenmenge von 1 GB

Input type file multiple und viele große Dateien

Da ich hin und wieder auch mal mit meinem Smartphone Fotos mache, habe ich mir jetzt auf meinem PC einen Webserver fürs Upload dieser Bilder eingerichtet. Also der Webserver ist im LAN erreichbar und natürlich auch per WLAN. Somit entfällt der Anschluß eines USB-Kabel und die Bilder landen diekt auf meinem lokalen Computer.

Input type="file" multiple

Ein multiple Fileupload per Enctype multipart/form-data würde jeden Webserver in die Knie zwingen, denn das Parsen dieses grottigen Enctype ist sehr CPU-lastig. Also habe ich für meine Belange einen proprietären Content-Type entwickelt, welcher die Dateien ganz einfach nur aneinanderhängt. Das Parsen entfällt und stattdessen wird der Datenstrom sequentiell gelesen, wobei die Einzeldaten (Tupel) direkt beim Lesen aus STDIN unmittelbar serialisiert werden und nicht erst dann wenn alles angekommen ist. Ein Tupel hat genau 3 Datenfelder: Dateiname, Last-Modified und die Binary selbst. Nach dem Schreiben einer jeden Datei mit dem Original-Dateinamen auf die Festplatte meines PC (Webserver) bekommt jede Datei auch den Original-Zeitstempel als atime und mtime aufgedrückt.

Infolge der sequentiellen Serialisierung gestaltet sich das Upload sehr großer Datenmengen als problemlos. Beim Upload mit über 200 Dateien und einer Gesamtdatenmenge von 1 GB zeigte der Server keine nennenswerte CPU-Belastung.


Datenschutzerklärung: Diese Seite dient rein privaten Zwecken. Auf den für diese Domäne installierten Seiten werden grundsätzlich keine personenbezogenen Daten erhoben. Das Loggen der Zugriffe mit Ihrer Remote Adresse erfolgt beim Provider soweit das technisch erforderlich ist. s​os­@rolf­rost.de.