Rails 6에서 이미지 업로드 방법에는 여러 가지가 있다.
그 중에서도 Cloudinary를 사용해 이미지를 업로드 하는 법을 알아보자.
Cloudinary는 웹 어플리케이션에서 이미지 관리를 쉽게 하도록 도와주는 클라우드 서비스다.
나는 Cloudinary로 이미지를 업로드 하고, 업로드 된 이미지의 url을 사용했다.
gem 'cloudinary'
bundle install
CLOUDINARY_URL: 'cloudinary://922286352854516:api_secret@ayokinya'
cloudinary:
service: Cloudinary
if !params[:image].nil?
res = Cloudinary::Uploader.upload(params[:image])
#params[:image]에 담긴 이미지 내용을 업로드 한다.
@user = User.find(params[:id])
@user.avatar_url = res["url"]
#res["url"]로 업로드된 이미지의 url을 불러온다.
@user.save!
end
params[:image]는 javascript로 처리한 readAsDataUrl의 result다. 이미지를 업로드하는 HTML form과 Javascript로 form으로 업로드된 이미지를 읽는 방법은 생략한다.
save 성공 후 url이나 Cloudinary의 Media Library에서 이미지가 잘 업로드되었다는 것을 확인할 수 있다!
새삼 이미지 업로드가 어마무시하게 일어나는 대형 서비스가 대단하게 보인다.
[참고 자료]
https://cloudinary.com/documentation/rails_integration
https://github.com/cloudinary/cloudinary_gem