Estoy usando v3 de AWS SDK para javascript en un entorno TypeScript/nodejs, pero cuando lo ejecuto con ts-node, se queja de que no puedo encontrar la función de envío en el cliente s3. Mi código:
const client = new S3Client({ credentialDefaultProvider: this.getCredentialDefaultProvider region: "us-west-2", }); const command = new ListObjectsCommand({ Bucket: bucket, Prefix: prefix, }); const result = await client.send(command);El error que me sale al iniciar mi servidor es este:
/server/node_modules/ts-node/src/index.ts:230 return new TSError(diagnosticText, diagnosticCodes) TSError: ⨯ Unable to compile TypeScript: src/controllers/aws.controller.ts(56,37): error TS2339: Property 'send' does not exist on type 'S3Client'.Esto es básicamente lo mismo que los ejemplos de código en la documentación oficial . Pero instalé los paquetes correctos (e incluso borré mi carpeta node_modules y la reinstalé) y el código en node_modules parece correcto. ¿Qué estoy haciendo mal?
Por contexto, este es un script nodeJS que se ejecuta en ts-node en un contenedor docker-compose. Otro código funciona bien, incluido un comando para obtener una URL firmada usando el mismo objeto de cliente.
Obtuvimos el mismo error con un módulo nuevo (v3.51.0) @aws-sdk\client-s3 pero no con el anterior v3.47.0. Rebajé el módulo @aws-sdk\client-s3 a v3.47.0 y nuestras preocupaciones desaparecieron.