Ruby on Rails 이미지 업로드 with heroku, AWS S3
January 28, 2018 | 3 Minute Read
heroku에서 돌아가고 있는 RoR 어플리케이션의 특정 Model에 이미지를 추가하기로 했다.
그리고 선택한 방법은 AWS S3로 이미지를 저장하는 것.
gem
Gemfile에 필요한 gem을 추가한다.
uploader
uploader를 생성한다.
예시를 위해 기본적인 요소들을 생성했다.
Model에 uploader를 적용한다.
View
form field를 수정해준다.
accept option을 통해 파일 validation을 적용할 수 있다.
이미지 태그를 생성해준다.
validation
uploader validation
Model validation
jquery validation
Imagemagick - 리사이징
Imagemagick 설치
Resize 설정 및 production mode에서만 cloud 업로드 설정
AWS S3
AWS 가입, S3 bucket 생성.
region은 seoul로 했다.
주의할점: butcket 이름에 “.”이 들어가면 Rails가 경로를 제대로 읽어오지 못해 에러가 난다.
carrier wave 설정
- region은 본인이 사용중인 S3의 region을 기입한다.
region 찾기 - https://docs.aws.amazon.com/ko_kr/general/latest/gr/rande.html
heroku config. 보안을 위해, 파일에 직접 기입하지 않는다.
테스트용 업로드는 .gitignore
완료.
heroku에 upload한 후 db:migrate을 해주면 끝이 난다.
참고