NodeJS transmitir um arquivo remoto e fechá-lo e armazená-lo localmente

votos
0

Estou tentando baixar um arquivo remoto, e fechá-lo e guardá-lo em localmente no servidor do nó. Eu estou usando nó 8.11.4

O código funcionar corretamente se eu não fechá-lo, mas quando eu fechá-lo, ele parar de trabalhar

Então, o seguinte código está funcionando

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')
   })
})

O código acima irá salvar corretamente o arquivo pdf.

Mas quando eu tento fechá-lo no fluxo, como este

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')
   })
})

Ele gera um arquivo zip, mas quando eu abri-lo no, ele me diz que não é um arquivo zip válido. Embora se eu fechar o arquivo usando zlib localmente, ele está funcionando bem

Existe algo que eu tenho que fazer no tubo?

Publicado 27/11/2018 em 17:55
fonte usuário
Em outras línguas...                            


1 respostas

votos
1

É um pouco difícil de entender que não está funcionando para você. Seu código tem alguns erros de digitação, por isso não deve ser executado em primeiro lugar, mas se você corrigir esses erros de digitação ele funciona muito bem para mim.

Que programm você usa tentando abrir a .zip?

(A propósito: talvez considere fazer terminar o arquivo no .gz, porque esse é o arquivo adequado de término para gzip comprimido de dados)

Respondeu 27/11/2018 em 23:12
fonte usuário

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