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

434
Vistas
Error: Faltan credenciales en la configuración - /nodeapp/node_modules/aws-sdk/lib/request.js:31

Extraigo objetos usando la función s3.listObjects() de AWS-SDK y sigo recibiendo el siguiente error:

 /nodeapp/node_modules/aws-sdk/lib/request.js:31

Seguido por

 Error: Missing credentials in config at IncomingMessage.<anonymous> (/nodeapp/node_modules/aws-sdk/lib/util.js:863:34) at emitNone (events.js:91:20) at IncomingMessage.emit (events.js:186:7) at endReadableNT (_stream_readable.js:974:12) at _combinedTickCallback (internal/process/next_tick.js:74:11) at process._tickDomainCallback (internal/process/next_tick.js:122:9)

Esto no cuadra porque tengo una ruta diferente (downloadParam) que recupera un objeto de S3 sin darme este error. Además, cuando cierro la sesión de los objetos recuperados de la ruta downloadResults , parece que los objetos se recuperaron sin problemas, pero aún recibo este error.

He pasado horas en este problema y parece que no puedo entender por qué ocurre esto. He pegado por código para ambas rutas a continuación, la que funciona y la que no. Por lo que obtuve en línea, esto parece ser más un problema de código que un problema de credenciales de AWS-SDK.

 downloadParam: function(app, s3){ app.use('/api', apiRoutes) apiRoutes.get('/download-param-file', function(req, res, next){ res.set({'Content-Type':'text/csv'}) s3.getObject({Bucket: 'some-bucket', Key: 'some-key' + req.query.fileName}, function(err, file){ if (err) { console.log(err); return next(err); } else { return res.send(file.Body.toString()); } }) }) }, downloadResults: function(app, s3){ app.use('/api', apiRoutes) apiRoutes.get('/download-results-file', function(req, res, next){ res.set({'Content-type': 'application/zip'}) var params = { Bucket: 'some-bucket', Delimiter: '/', Prefix: 'some-key' }; var filesArray = [] var files = s3.listObjects(params).createReadStream() var xml = new XmlStream(files) xml.collect('Key') xml.on('endElement: Key', function(item) { filesArray.push(item['$text'].substr(params.Prefix.length)) }) xml.on('end', function() { res.send(zip(filesArray, req.query.jobName, params)) }) }) }

A partir de ahora, downloadParams funciona como se esperaba, pero downloadResults no. Cualquier ayuda sería tremendamente apreciada.

Este enlace parece resolver un problema similar al mío.

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

0

No estás autenticando la llamada. El depósito no tiene permisos para listar objetos sin autenticación, mientras que sí tiene permiso para descargar archivos específicos sin autenticación.

Consulte la documentación de Amazon sobre cómo agregar credenciales de manera segura a la instancia.

Esencialmente,

 var creds = AWS.Credentials(); creds.accessKeyId = 'AKIAIOSFODNN7EXAMPLE'; creds.secretAccessKey = 'wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY'; AWS.config.credentials = creds;
about 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