deploy 3 AWS S3

deploy 3 AWS S3

무료 클라우드 컴퓨팅 서비스 - AWS 프리 티어 (amazon.com)

S3를 사용하기 위해서는 먼저 여기에서 AWS계정을 만들어야 한다.

이걸 찾아 누르고

버킷을 만들어 준다.

그다음 API KEY를 만들어야하는데 그래야 nodejs코드가 AWS와 소통할 수 있기 때문이다.

그래서 IAM이라는 서비스를 이용해보자

사용자 추가를 눌러 만들어주자

초록박스를 꼭 체크해주어야 한다 하지않으면 웹사이트에 로그인 할 때 비밀번호를 적어야하기 때문이다.

이건 로그인 할 때 access key를 사용하는 건데 그게 key ID와 secret Key이다. 그래서 nodejs 서버가 로그인할 수가 있다.

그 다음 권한으로 넘어가서

S3 Full Access 권한을 주려고한다 이건 파일에 대해서만 모든 권한을 주는 것이다. 그래서 이 key를 선택하면

사람들이 내 계정으로 이것만 할 수 있을 것이다.

이렇게 사용자를 생성하면 API키와 비밀번호를 받을 수 있다. 이건 한번만 받을 수 있고 다신 못받기에 관리를 잘해야한다. 이걸 heroku의 config Var에 추가해주자 그리고 development에서도 확인할 수 있도록.env에도 적어주자

그리고 Multer S3라는 것을 다운받아야하는데 이건 우리의 웹사이트에 업로드하는 대신 AWS에 업로드해준다.

그리고 이걸 사용하려면 s3오브젝트도도 필요한데

s3는 aws-sdk라는 것에서 오므로 다운 받아주자

middleware.js에 들어가서

s3와 multerUploader를 만들어주자

s3에 아까 가져온 AWS_ID와 AWS_SECRET을 적어주고

multerUploader에 bucket에는 우리가 S3에 만든 bucket의 이름을 적어주어야 한다.

그리고 upload에도 storage를 적어주어야한다.

이렇게 하고 npm run dev:server, npm run dev:assets를 해주면 개발 서버가 잘 실행이 된다.

프로필 사진을 업로드하면 우리의 사진이 바뀌지 않는데 이 사진은 서버내에 존재하지 않고

bucket안에 존재하는 것을 확인할 수 있다.

from http://taehyeki.tistory.com/87 by ccl(A) rewrite - 2021-10-24 18:26:18