Eu tenho um serviço expresso de que está tentando gravar um objecto a um bucket s3, mas eu estou recebendo o seguinte erro:
Falta de credenciais em config
Eu estou supondo que meu AWS função localmente, o qual define as minhas credenciais em .aws/credentials
então, em minha Dockerfile eu sou copiá-los para o meu recipiente.
RUN mkdir "/home/node/.aws" && touch "/home/node/.aws/config" && touch "/home/node/.aws/credentials"
RUN echo "${AWS_CREDENTIALS}" > "/home/node/.aws/credentials"
A documentação diz:
O SDK detecta automaticamente AWS credenciais definidas como variáveis no seu ambiente e usa-los para o SDK pedidos, eliminando a necessidade de gerenciar credenciais em seu aplicativo. As variáveis de ambiente que você definir para fornecer as credenciais são:
SENHA
AWS_SECRET_ACCESS_KEY
AWS_SESSION_TOKEN (opcional)
Então eu não tenho para gerenciar manualmente as minhas credenciais ao usar o sdk?
Atualmente, o código para escrever para o bucket 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;
}