Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

266
Visualizações
Error "Falta la credencial" al crear instancias de la clase S3 con AWS-SDK JS V3

Recibo un error al crear un cliente S3 de la class S3 en la nueva v3 de aws-sdk javascript.

Agrego parámetros de configuración de aws, incluidas las credenciales obtenidas de aws sts cuando el usuario se autentica (asumiendo un rol con permiso para llamar a getObject ) en el nivel de servicio (al instanciar la clase S3) junto con otros parámetros. Ver mi código a continuación:

 const { S3, ... } = require("@aws-sdk/client-s3"); someFunc(); function someFunc(authUserCredentials) { ... try { const { AccessKeyid, SecretKey, SessionToken } = authUserCredentials; const s3Client = new S3({ signatureVersion: 'v4', accessKeyId: AccessKeyId, secretAccessKey: SecretKey, sessionToken: SessionToken, region: 'us-east-1', }); console.log(s3Client.config); ... }catch(e) { console.error(e); } }

Revisé el código de la class S3 en el repositorio aws-sdk-js-v3 , y no parece haber ningún argumento de configuración del constructor 'Credencial' requerido. ¿Estoy haciendo algo mal?

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Solo para aclarar la respuesta de Chris Williams combinada con el segundo comentario de @ Waleed93, lo que solía funcionar con AWS Javascript SDK v2 es:

 import S3 from 'aws-sdk/clients/s3'; const AccessKeyId = xxxxx, SecretKey = yyyyyyyy, SessionToken = zzzzzzzzzz; const s3Client = new S3({ apiVersion: '2006-03-01', region: 'us-east-1', accessKeyId: AccessKeyId, secretAccessKey: SecretKey, sessionToken: SessionToken });

Para SDK v3, el constructor ya no acepta parámetros de credenciales individuales, pero toma un objeto de "credenciales" como parámetro. Lo que funciona es:

 const { S3 } = require('@aws-sdk/client-s3'); const AccessKeyId = xxxxx, SecretKey = yyyyyyyy, SessionToken = zzzzzzzzzz; const creds = { accessKeyId: AccessKeyId, secretAccessKey: SecretKey, sessionToken: SessionToken }; const s3Client = new S3({ apiVersion: '2006-03-01', region: 'us-east-1', credentials: creds });

Este cambio no se encuentra en ninguna parte de la documentación del SDK de AWS, la referencia de clase o la Guía del desarrollador para la versión 3 del SDK. Gracias a Chris y @Waleed93 por resolverlo.

over 4 years ago · Santiago Trujillo Relatório

0

Según la documentación del constructor , estos argumentos son válidos.

Todavía hay un nombre de argumento para el objeto Credential con el nombre credentials . Si crea una instancia de un objetoAWS.Credentials , puede pasar esto a ese argumento.

over 4 years ago · Santiago Trujillo Relatório

0

El valor de las credenciales debe ser un objeto que contenga sus credenciales pasadas a la configuración como se muestra a continuación:

 import { S3Client, GetObjectCommand } from '@aws-sdk/client-s3' const CREDENTIAL = { accessKeyId: 'accesKeyIdString', secretAccessKey: 'secretAccessKeyIdString', }; const REGION: 'aws region'; const s3Client = new S3Client({region: REGION, credentials: CREDENTIAL});
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda