Gibt es eine Lösung/Dienstprogramme zum gleichzeitigen Komprimieren und Hochladen einer großen Datei?

Gibt es eine Lösung/Dienstprogramme zum gleichzeitigen Komprimieren und Hochladen einer großen Datei?

Das Hochladen einer großen Datei über eine Breitbandverbindung nimmt Zeit in Anspruch. Auch das Komprimieren der Datei mit der maximalen Komprimierungsrate vor dem Hochladen nimmt Zeit in Anspruch.

Gibt es eine Lösung, mit der die Datei gleichzeitig komprimiert und auf das Remote-Ende hochgeladen werden kann? Wenn ja, ist die Komprimierungszeit in die Upload-Zeit eingebettet.

Beispielsweise dauert das Komprimieren der Datei 5 Minuten und das Hochladen der komprimierten Datei 10 Minuten. Das Ausführen der Komprimierung und anschließendes Hochladen dauert etwa 15 Minuten.

Wenn Sie eine Lösung zum Komprimieren und Hochladen verwenden, kann es nur etwa 10 Minuten dauern, da die Upload-Geschwindigkeit normalerweise langsamer ist als die Komprimierungsgeschwindigkeit.

Antwort1

Dies hängt von dem Protokoll ab, das Sie zum Übertragen von Dateien verwenden. Normalerweise geschieht dies bereits transparent.

Das HTTP- (und HTTPS-)Protokoll unterstützt die On-the-Fly-Komprimierung, vorausgesetzt, dass sowohl Server als auch Client diese implementieren. Zunächst teilt der Client dem Server mit, welche Art der Komprimierung er unterstützt. Ein typischer HTTP-Anforderungsheader enthält eine Zeile wie

Accept-Encoding: gzip, deflate

Der Server wählt einen unterstützten Komprimierungsalgorithmus aus, gibt ihn im HTTP-Header an (wie unten) und stellt den komprimierten Inhalt bereit.

Content-Encoding: gzip

Die meisten modernen HTTP-Clients (wie Chrome, Firefox, Internet Explorer, Safari usw., in alphabetischer Reihenfolge) und Server (wie Apache, Microsoft IIS, nginx) übertragen bei richtiger Konfiguration komprimierte Daten im laufenden Betrieb.

Auf ähnliche Weise können auch andere Protokolle eine Komprimierung implementieren, z. B. Mode Z in FTP. Spezialprotokolle wie Remote Differential Compression von Microsoft ermöglichen die Synchronisierung lokaler und Remote-Dateien, indem nur der unterschiedliche Teil übertragen wird.


BEARBEITEN:

Ich habe festgestellt, dass die transparente HTTP-Komprimierung nur für den Dateidownload gilt, aber nicht umgekehrt. Wenn Sie Daten für den Upload komprimieren möchten, müssen Sie möglicherweise etwas Javascript schreiben und FileReadereine Komprimierungsbibliothek wie verwenden compressjs.

verwandte Informationen