npm install aws-sdk —save
const AWS = require('aws-sdk');
const fs = require('fs');
AWS.config.loadFromPath('<<config 파일위치>>');
AWS.config.update({ region: 'ap-northeast-2' });
- aws-sdk : s3 접근에 필요한 모듈
- fs : 파일을 읽어오는 모듈
- config.loadFromPath: accessKeyId, secretAccessKey 를 config파일에 저장해둔다.
- 서버에서 접근하려면 accessKeyId 와 secretAccessKey가 필요하고, 이 두개의 키는 AWS에서 S3에 접근 가능한 IAM User를 생성하면 발급!
config.json
{
accessKeyId: "비밀비밀",
secretAccessKey: "더 비밀비밀"
}
- region을 적어준다. (서울은 “ap-northeast-2”)
* IAM란 Identity and Access Management의 약자로, AWS 리소스에 대한 액세스를 안전하게 제어할 수 있는 웹 서비스다. IAM을 사용하여 리소스를 사용하도록 인증(로그인) 및 권한 부여(권한 있음)된 대상을 제어합니다.
const s3 = new AWS.S3();
const param = {
Bucket: '<<버킷이름>>',
Key: '<<버킷에 올라갈 폴더/파일이름>>',
ACL: 'public-read',
Body: fs.createReadStream('<<버킷에 올릴 파일>>'),
ContentType: 'image/png'
};
- Bucket: AWS S3에 만들어 놓은 버킷 이름
- Key: S3에 저장될 위치 존재하지 않으면 생성
- ACL: S3에 사전정의된 권한 부여 집합
- Body: 저장되는 데이터 [ string, buffer, stream ]
- ContentType: MIME 타입 [ 확장자가 없을때는 반드시 타입 설정 ]
s3.upload(param, (err, data) => {
if (err) console.log(err);
console.log(data);
});
- 업로드를 실행 실행확인