Tengo un servicio express que está tratando de escribir un objeto a un s3 pero me da el siguiente error:
Falta de credenciales en el config
Estoy asumiendo mi AWS papel localmente que los conjuntos de mis credenciales en .aws/credentials
luego, en mi Dockerfile estoy copiando en mi contenedor.
RUN mkdir "/home/node/.aws" && touch "/home/node/.aws/config" && touch "/home/node/.aws/credentials"
RUN echo "${AWS_CREDENTIALS}" > "/home/node/.aws/credentials"
La documentación dice:
El SDK detecta automáticamente las credenciales de AWS conjunto de variables en su medio ambiente y los utiliza para el SDK de solicitudes, eliminando la necesidad de administrar las credenciales en su aplicación. Las variables de entorno que se establece para proporcionar sus credenciales son:
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
AWS_SESSION_TOKEN (opcional)
Así que no tengo que gestionar manualmente mis credenciales cuando se utiliza el sdk?
Actualmente, el código de escritura para el s3:
import s3 from 'aws-sdk/clients/s3';
const s3Client = new s3({region: process.env['region']});
async upload() {
const params = {
Bucket: process.env['bucket'],
Key: 'test.json',
Body: somejsonfile
}
const res = s3Client.upload(params).promise();
return results;
}