He estado tratando de descargar un archivo HAR de saucelabs usando el comando exec, pero aparece este error cuando descarga demasiados datos:
RangeError [ERR_CHILD_PROCESS_STDIO_MAXBUFFER]: se excedió la longitud de stdout maxBuffer
He visto que child_process spawn se usa para archivos más grandes, pero no he logrado que funcione con todos los parámetros que estoy enviando. Además, no pude averiguar cómo devolver los datos descargados y almacenarlos como una variable con spawn. ¿Alguien puede mostrarme cómo usar spawn para obtener los datos y cómo guardar esos datos en una variable para su posterior procesamiento?
Gracias
async getNetworkRequests (jobId) { const harFile = await new Promise((resolve, reject) => { exec(`curl -u "${process.env.SAUCE_USER}:${process.env.SAUCE_KEY}" --location --compressed --request GET 'https://api.eu-central-1.saucelabs.com/rest/v1/${process.env.SAUCE_USER}/jobs/${jobId}/assets/network.har'`, (error, stdout) => { if (error) { console.log(`Error message: ${error}`) reject(error) } resolve(stdout) }) }) return harFile }He progresado un poco con el spawn, pero no puedo obtener los datos de la función stdout:
async getNetworkRequests (jobId) { const spawnProcess = spawn('/bin/sh', ['-c', `curl -u "${process.env.SAUCE_USER}:${process.env.SAUCE_KEY}" --location --compressed --request GET 'https://api.eu-central-1.saucelabs.com/rest/v1/${process.env.SAUCE_USER}/jobs/${jobId}/assets/network.har'`]) const output spawnProcess.stdout.on('data', data => { output = data.toString() }) console.log(output) // This returns undefined }