【Rails】 로컬 환경에서 S3의 이미지를 게시 할 수 있지만 Heroku에서 S3으로 전환되지 않는 문제
3609 단어 경 6RailsActiveStorageS3AWS
현상
로컬 환경에서 잘 S3에 이미지를 보관할 수 있었다! !
그러나 Heroku 측에 병합해도 왠지 Heroku DB에 이미지를 보관하고 있다. . .
오류도 나오지 않는다. .
왜일까. . .
원인
지금 생각하면 당연한 이야기입니다만,
원인은 프로덕션용(Heroku) 파일에 ActiveStorage 설정을 하지 않았다는 것이었습니다.
종류
환경
설정 파일
개발 환경
로컬 환경
development.rb
프로덕션 환경
Heroku
production.rb (⇦ 여기에 설정 넣지 않았다)
** 같은 실수를하지 않도록 절차를 남겨 둡니다 **
로컬 환경에서의 설정(※aws측의 설정은 할애)
①S3를 사용하기 위해 필요한 Gemfile을 도입
Gemfile.gem "aws-sdk-s3", require: false
②추기하면 터미널에서 개발중인 앱에 들어가 "bundle install"을 실행
터미널.% bundle install
③development.rb와 storage.yml 파일도 갱신
config/environments/development.rb
# S3にて保存されるように設定を変更
# config.active_storage.service = :local
config.active_storage.service = :amazon
config/storage.yml# S3の設定を追記
amazon:
service: S3
region : ap-southeast-1 # リージョンをaws側で確認して記載
bucket : furimabucket # バケット名をaws側で確認して記載
access_key_id: <%= ENV['AWS_ACCESS_KEY_ID'] %>
secret_access_key: <%= ENV['AWS_SECRET_ACCESS_KEY'] %>
④환경 변수의 추가
③의 storage.yml에서 "AWS_ACCESS_KEY_ID""AWS_SECRET_ACCESS_KEY"를 설정하고 있으므로 개발중인 앱에서 환경 변수를 추가.
터미널.% vim ~/.zshrc
「i」로 편집 모드로 하여 2개의 변수를 등록
터미널.export AWS_ACCESS_KEY_ID="Access key IDの値"
export AWS_SECRET_ACCESS_KEY="Secret access keyの値"
편집이 끝나면 [ESC]→:wq로 종료
그런 다음 환경 변수 설정 파일을 다시 읽습니다.
터미널.% source ~/.zshrc
이제 로컬 환경에서 S3의 이미지 게시가 가능했습니다 !!!!!!
이후는, 프로덕션 환경(Heroku)에의 반영 순서가 됩니다.
프로덕션 환경(Heroku)에 반영
① 우선 잊지 않고 production.rb 업데이트
storage.yml은 특별히 변경되지 않습니다.
config/environments/production.rb
# 本番環境でもS3にて保存されるように設定
config.active_storage.service = :amazon
②터미널에서 Heroku에 로그인
터미널.% heroku login --interactive
③ 프로덕션 환경에서도 환경 변수 설정
환경 변수를 확인하려면 "% heroku config"
터미널.% heroku config:set AWS_ACCESS_KEY_ID="Access key IDの値"
% heroku config:set AWS_SECRET_ACCESS_KEY="Secret access keyの値"
④다음은 커밋하고 완료
터미널.% git add .
% git commit -m "ストレージの変更(S3)"
% git push heroku master
수고하셨습니다.
Reference
이 문제에 관하여(【Rails】 로컬 환경에서 S3의 이미지를 게시 할 수 있지만 Heroku에서 S3으로 전환되지 않는 문제), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sucatman/items/c70a4cac2472aa701ff2
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
지금 생각하면 당연한 이야기입니다만,
원인은 프로덕션용(Heroku) 파일에 ActiveStorage 설정을 하지 않았다는 것이었습니다.
종류
환경
설정 파일
개발 환경
로컬 환경
development.rb
프로덕션 환경
Heroku
production.rb (⇦ 여기에 설정 넣지 않았다)
** 같은 실수를하지 않도록 절차를 남겨 둡니다 **
로컬 환경에서의 설정(※aws측의 설정은 할애)
①S3를 사용하기 위해 필요한 Gemfile을 도입
Gemfile.gem "aws-sdk-s3", require: false
②추기하면 터미널에서 개발중인 앱에 들어가 "bundle install"을 실행
터미널.% bundle install
③development.rb와 storage.yml 파일도 갱신
config/environments/development.rb
# S3にて保存されるように設定を変更
# config.active_storage.service = :local
config.active_storage.service = :amazon
config/storage.yml# S3の設定を追記
amazon:
service: S3
region : ap-southeast-1 # リージョンをaws側で確認して記載
bucket : furimabucket # バケット名をaws側で確認して記載
access_key_id: <%= ENV['AWS_ACCESS_KEY_ID'] %>
secret_access_key: <%= ENV['AWS_SECRET_ACCESS_KEY'] %>
④환경 변수의 추가
③의 storage.yml에서 "AWS_ACCESS_KEY_ID""AWS_SECRET_ACCESS_KEY"를 설정하고 있으므로 개발중인 앱에서 환경 변수를 추가.
터미널.% vim ~/.zshrc
「i」로 편집 모드로 하여 2개의 변수를 등록
터미널.export AWS_ACCESS_KEY_ID="Access key IDの値"
export AWS_SECRET_ACCESS_KEY="Secret access keyの値"
편집이 끝나면 [ESC]→:wq로 종료
그런 다음 환경 변수 설정 파일을 다시 읽습니다.
터미널.% source ~/.zshrc
이제 로컬 환경에서 S3의 이미지 게시가 가능했습니다 !!!!!!
이후는, 프로덕션 환경(Heroku)에의 반영 순서가 됩니다.
프로덕션 환경(Heroku)에 반영
① 우선 잊지 않고 production.rb 업데이트
storage.yml은 특별히 변경되지 않습니다.
config/environments/production.rb
# 本番環境でもS3にて保存されるように設定
config.active_storage.service = :amazon
②터미널에서 Heroku에 로그인
터미널.% heroku login --interactive
③ 프로덕션 환경에서도 환경 변수 설정
환경 변수를 확인하려면 "% heroku config"
터미널.% heroku config:set AWS_ACCESS_KEY_ID="Access key IDの値"
% heroku config:set AWS_SECRET_ACCESS_KEY="Secret access keyの値"
④다음은 커밋하고 완료
터미널.% git add .
% git commit -m "ストレージの変更(S3)"
% git push heroku master
수고하셨습니다.
Reference
이 문제에 관하여(【Rails】 로컬 환경에서 S3의 이미지를 게시 할 수 있지만 Heroku에서 S3으로 전환되지 않는 문제), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sucatman/items/c70a4cac2472aa701ff2
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
gem "aws-sdk-s3", require: false
% bundle install
# S3にて保存されるように設定を変更
# config.active_storage.service = :local
config.active_storage.service = :amazon
# S3の設定を追記
amazon:
service: S3
region : ap-southeast-1 # リージョンをaws側で確認して記載
bucket : furimabucket # バケット名をaws側で確認して記載
access_key_id: <%= ENV['AWS_ACCESS_KEY_ID'] %>
secret_access_key: <%= ENV['AWS_SECRET_ACCESS_KEY'] %>
% vim ~/.zshrc
export AWS_ACCESS_KEY_ID="Access key IDの値"
export AWS_SECRET_ACCESS_KEY="Secret access keyの値"
% source ~/.zshrc
① 우선 잊지 않고 production.rb 업데이트
storage.yml은 특별히 변경되지 않습니다.
config/environments/production.rb
# 本番環境でもS3にて保存されるように設定
config.active_storage.service = :amazon
②터미널에서 Heroku에 로그인
터미널.
% heroku login --interactive
③ 프로덕션 환경에서도 환경 변수 설정
환경 변수를 확인하려면 "% heroku config"
터미널.
% heroku config:set AWS_ACCESS_KEY_ID="Access key IDの値"
% heroku config:set AWS_SECRET_ACCESS_KEY="Secret access keyの値"
④다음은 커밋하고 완료
터미널.
% git add .
% git commit -m "ストレージの変更(S3)"
% git push heroku master
수고하셨습니다.
Reference
이 문제에 관하여(【Rails】 로컬 환경에서 S3의 이미지를 게시 할 수 있지만 Heroku에서 S3으로 전환되지 않는 문제), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/sucatman/items/c70a4cac2472aa701ff2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)