Estoy tratando de descargar la versión zip desde un repositorio privado, probé muchas soluciones pero ninguna parece funcionar.
Aquí mi código:
function Download(url, path, options) { updateHeader(options.stageTitles.Downloading) let received_bytes = 0; let total_bytes = 0; // eslint-disable-next-line console.log('-----------------') // eslint-disable-next-line console.log(url, path) console.log('-----------------') var req = request( { method: 'GET', uri: url, headers: { Authorization: `token ${options.gitRepoToken}`, 'Accept': 'application/octet-stream', 'User-Agent': 'request module', }, //encoding: null } ); // eslint-disable-next-line console.log(req) var out = fs.createWriteStream(path); req.pipe(out); req.on('response', data => { // eslint-disable-next-line console.log(data.headers, data) total_bytes = parseInt(data.headers['content-length']); }); req.on('data', chunk => { received_bytes += chunk.length; showProgress(received_bytes, total_bytes); }); req.on('end', () => { Install(options) });}la variable URL equivale a algo como: https://github.com/SolberLight/PRIVATE_REPO_NAME/releases/download/1.0/MY_ZIP_NAME.zip
Parece que siempre obtengo un tamaño de contenido de 9 bytes con una respuesta "no encontrado", así que supongo que mis encabezados no son correctos.
Gracias por tu ayuda !
EDIT 1: Progresó un poco, pero ahora parece que el blob no tiene el tamaño correcto
(async () => { //get latest release var response = await axios.get( `https://api.github.com/repos/${repoWithOwner}/releases/latest`, { headers: authHeaders, } ); var assets = response.data.assets; for (var i = 0; i < assets.length; i++) { console.log(assets[i].url); response = await axios({ method: "get", url: assets[i].url, responseType: "blob", headers: { //Accept: "application/octet-stream", ...authHeaders, }, }); // eslint-disable-next-line console.log(response.data, path) let reader = new FileReader() reader.onload = function() { if (reader.readyState == 2) { var buffer = new Buffer(reader.result) console.log(`Saving ${JSON.stringify({ fileName: 'myfile.zip', size: response.data.size })}`) outputFile(path, buffer, err => { if (err) { // eslint-disable-next-line console.log(err.message) } else { // eslint-disable-next-line console.log(path) } }) } } reader.readAsArrayBuffer(response.data) } })();