웹/Infra

nodejs로 AWS S3 연동

sun__ 2021. 7. 16. 21:42

버킷은 콘솔로 만드는게 맘편할듯

 

버킷 생성, cdn생성 과정 간단하게

- 버킷 생성 (이름: ~.~.com)

- 정책 json으로 설정

- 정적 웹사이트 호스팅 -> route53 레코드에 추가

- 인증서 (n버지니아리전, cdn.~.com, route53에 레코드 추가)

- 클라우드 프론트

   - behaviour설정 - referal추가

   - general alternative domain: cdn.~.com, route53등록

 

파일 업로드

const fs = require('fs');
const AWS = require('aws-sdk');
const BUCKET_NAME = /*버킷이름 그대로 {route}.{domain}.com*/;
const s3 = new AWS.S3({accessKeyId:/*별도관리*/, secretAccessKey:/*별도관리*/});
const uploadFile = (fileName) =>{
    const fileContent = fs.readFileSync(fileName);
    const params = {
        Bucket: BUCKET_NAME,
        Key: '/*업로드할 객체 이름*/',
        Body: fileContent
    };
    s3.upload(params, function(err,data){
        if(err){throw err;}
        console.log(`File uploaded successfully. ${data.Location}`);
    });
}
uploadFile('/*업로드할 객체 경로*/');

 

파일 삭제

const AWS = require('aws-sdk');
const BUCKET_NAME = '/*버킷이름*/';
const s3 = new AWS.S3({accessKeyId:"/*별도관리*/", secretAccessKey:"/*별도관리*/"});

s3.deleteObject({
    Bucket: BUCKET_NAME, // 사용자 버켓 이름
    Key: '/* 버켓 내 경로*/' //
  }, (err, data) => {
    if (err) { throw err; }
    console.log(`s3 deleteObject: ${data.Location}`);
  });