У меня есть экспресс-служба, которая пытается записать объект в корзину s3, но я получаю следующую ошибку:
Отсутствуют учетные данные в конфигурации
Я принимаю на себя роль AWS локально, которая устанавливает мои учетные данные в .aws/credentials
затем в моем файле Dockerfile я копирую их в свой контейнер.
RUN mkdir "/home/node/.aws" && touch "/home/node/.aws/config" && touch "/home/node/.aws/credentials"
RUN echo "${AWS_CREDENTIALS}" > "/home/node/.aws/credentials"
В документации говорится:
Пакет SDK автоматически определяет учетные данные AWS, установленные в качестве переменных в вашей среде, и использует их для запросов SDK, устраняя необходимость управления учетными данными в приложении. Переменные среды, которые вы задаете для предоставления своих учетных данных, являются:
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
AWS_SESSION_TOKEN (необязательно)
Таким образом, мне не нужно вручную управлять своими учетными данными при использовании sdk?
В настоящее время код для записи в корзину 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;
}