on
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