ผมมีการแสดงบริการที่กำลังพยายามเขียนเป็นวัตถุต้องการ s3 ถัแต่ฉันกำลังต่อไปนี้เกิดข้อผิดพลาด:
หายไปบัตรอยู่ใน config
ฉันคิดว่าฉัน 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 โดยอัตโนมัติ detects 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;
}