J'ai un service express qui est d'essayer d'écrire un objet à un compartiment s3 mais j'obtiens l'erreur suivante:
Manque d'informations d'identification dans le fichier config
Je suis en supposant que ma AWS rôle localement, ce qui définit mes informations d'identification dans .aws/credentials
ensuite dans mon Dockerfile je copie dans mon conteneur.
RUN mkdir "/home/node/.aws" && touch "/home/node/.aws/config" && touch "/home/node/.aws/credentials"
RUN echo "${AWS_CREDENTIALS}" > "/home/node/.aws/credentials"
La documentation dit:
Le SDK détecte automatiquement les informations d'identification AWS définir comme des variables dans votre l'environnement et les utilise pour le SDK demandes, éliminant le besoin de gérer les informations d'identification dans votre application. Les variables d'environnement vous définissez à fournir vos informations d'identification sont les suivants:
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
AWS_SESSION_TOKEN (facultatif)
Donc je n'ai pas à gérer manuellement mes informations d'identification lors de l'utilisation du sdk?
Actuellement, le code de l'écriture dans le compartiment 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;
}