Bir s3 kovasına bir nesne yazmaya çalışan bir ekspres servisim var ancak aşağıdaki hatayı alıyorum:
Yapılandırmada eksik kimlik bilgileri
Kimlik bilgilerimi belirleyen AWS rolümü yerel olarak varsayıyorum .aws/credentials
sonra Docker Dosyamda onları konteynerime kopyalıyorum.
RUN mkdir "/home/node/.aws" && touch "/home/node/.aws/config" && touch "/home/node/.aws/credentials"
RUN echo "${AWS_CREDENTIALS}" > "/home/node/.aws/credentials"
Dokümantasyonda şöyle yazıyor::
SDK, AWS kimlik bilgilerinin değişken olarak ayarlandığını otomatik olarak algılar. çevre ve SDK istekleri için bunları kullanır, ihtiyacı ortadan kaldırır uygulamanızdaki kimlik bilgilerini yönetin. Ortam değişkenleri kimlik bilgilerinizi sağlamak için ayarladığınız:
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
AWS_SESSION_TOKEN (isteğe bağlı)
Yani sdk'yı kullanırken kimlik bilgilerimi manuel olarak yönetmem gerekmiyor mu?
Şu anda s3 kovasına yazmak için kod:
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;
}