Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

314
Vistas
Descargue el archivo del repositorio de GitLab usando la API de GitLab y Node.js

Me gustaría descargar (no clonar) el archivo de mi repositorio de GitLab, pero aparece este error

verificación de encabezado incorrecta (Zlib._handle.onerror)

Esta es mi función:

 var fs = require('fs'); var url = require('url'); var https = require('https'); var path = require('path'); var targz = require('tar.gz'); function downloadFile(source, destination, name) { var options = { host: url.parse(source).host, port: 443, path: url.parse(source).pathname }; var file = fs.createWriteStream(destination + path.sep + name); https.get(options, function(res) { res.on('data', function(data) { file.write(data); }).on('end', function() { file.end(); console.log('File ' + name + ' downloaded to ' + destination); targz().extract(destination + '/' + name, destination) .then(function(){ console.log('Job done!'); }) .catch(function(err){ console.log('Something is wrong ', err.stack); }); }); }); }

El archivo que se descarga es del tipo tar.gz. Intento establecer algunos encabezados pero no tengo éxito. El parámetro de origen es como: https://gitlab.com/api/v3/projects/:ID/repository/archive?token=XXYYZZ

¿Alguna ayuda por favor?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

El problema es que el módulo https no descarga correctamente su archivo, lo que da como resultado un error de extracción del módulo tar.gz

Puede usar el módulo de request coordinado con tar.gz con createWriteStream para canalizar la extracción directamente a la carpeta de destino:

 var request = require('request'); var targz = require('tar.gz'); function downloadFile(source, destination, cb) { var read = request.get(source); var write = targz().createWriteStream(destination); read.pipe(write); write.on('finish', function() { cb(null); }); write.on('error', function(err) { cb(err); }); } var source = "https://gitlab.com/api/v3/projects/:ID/repository/archive?token=XXYYZZ"; var destination = "/home/user/some/dir"; downloadFile(source, destination, function(err) { if (err) { console.log('Something is wrong ', err.stack); } else { console.log('Job done!'); } });

Tenga en cuenta que, para enviar el evento de finish , necesitará la versión 1.0.2 de tar.gz (consulte este problema ):

 npm install tar.gz@1.0.2
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda