NodeJS eine Remote-Datei zu streamen und zip es, und speichern Sie es lokal

stimmen
0

Ich versuche, eine Remote-Datei herunterladen, und es zip und in lokal im Knoten-Server speichern. Ich verwende Knoten 8.11.4

Der Code korrekt ausgeführt werden, wenn ich es nicht zip, aber wenn ich es zip, es aufhören zu arbeiten

So ist der folgende Code funktioniert

const fs = require('fs')
const https = require('https')

const url = remoteurl // a url that is pointing to a pdf file
https.get(url, (res) => {
  res.pipe(fs.createWriteStream(./local-pdf.pdf))
  .on('finish', () => {
     console.log('you finished')
   })
})

Der obige Code spart richtig die pdf-Datei.

Aber wenn ich versuche, es zip auf dem Strom, wie dies

const fs = require('fs')
const zlib = require('zlib')
const https = require('https')

const url = remoteurl
https.get(url, (res) => {
  res.
   pipe(zlib.createGzip())
   pipe(fs.createWriteStream(./local-zip.zip))
  .on('finish', () => {
     console.log('you finished')
   })
})

Es erzeugt eine ZIP-Datei, aber wenn ich es öffnen in, es sagt mir, es ist keine gültige ZIP-Datei. Obwohl, wenn ich zip die Datei zlib lokal verwendet wird, ist es adaequat

Gibt es etwas, das ich auf dem Rohr zu tun?

Veröffentlicht am 27/11/2018 um 17:55
quelle vom benutzer
In anderen Sprachen...                            


1 antworten

stimmen
1

Es ist ein bisschen schwierig zu verstehen, was für Sie funktioniert nicht. Ihr Code hat ein paar Tippfehler, so dass es nicht in erster Linie laufen soll, aber wenn Sie diese Fehler beheben funktioniert es ganz gut für mich.

Welches Programm verwenden Sie versuchen , das zu öffnen .zip?

(Übrigens: Sehen Sie vielleicht machen die Datei am Ende auf .gz, denn das ist die richtige Datei für gzip komprimierten Daten enden)

Beantwortet am 27/11/2018 um 23:12
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more