Heroku+ActiveStorage+Amazon S3

4038 단어 경 6S3Rails
1 AWS 콘솔 → 서비스 → 스토리지 → S3에서 패킷 생성


품목
입력・선택


패킷 이름
ex: my-rails-app-first-bucket

지역

도쿄

액세스 권한
체크란 모두 off

상기 이외
기본


2 액세스 키 만들기
아래 참조
htps : // / ch-b ぉg. s-좋아. 코m/엔트리/135

3 필요한 Gem 설치
gem "aws-sdk-s3", require: false #追記

4 S3에 대한 액세스 키 입력
$ EDITOR=vim rails credentials:edit

# コメントアウトを解除する
aws:
 access_key_id: #ここに自分のアクセスキーIDをコピペ
 secret_access_key: #ここに自分のシークレットアクセスキーをコピペ

-vi/vim 조작-
i 키로 편집 시작, esc로 편집 종료, ZZ로 저장하고 종료
나중에 입력을 확인하고 싶을 때
$ rails credentials:show

5 Heroku에서 이미지 저장 위치를 ​​Amazon S3로 변경

config/storage.yml
amazon:
  # 以下3行はそのまま
  service: S3
  access_key_id: <%= Rails.application.credentials.dig(:aws, :access_key_id) %>
  secret_access_key: <%= Rails.application.credentials.dig(:aws, :secret_access_key) %>
  # 以下2行は変える
  region: ap-northeast-1 #東京
  bucket: my-rails-app-first-bucket #自分で作成したS3のバケットの名前

config/environmentas/production.rb
config.active_storage.service = :amazon #amazonに変更

6 마지막으로 Heroku에서 할 일
$ heroku buildpacks:add -i 1 https://github.com/heroku/heroku-buildpack-activestorage-preview
$ git add .
$ git commit -m "added s3 to production"
$ git push heroku master

Rails 프로젝트의 마스터 키 (config/master.key 내용)를 복사합니다.
$ heroku config:set RAILS_MASTER_KEY=マスターキーをここに貼り付け
$ heroku run rails db:migrate
$ heroku open

-응용편-
ActionText를 사용하는 경우 S3에서 S3 → 패킷 → 액세스 권한 → Cross-Origin Resource Sharing (CORS)로 이동합니다. CORS를 설정할 필요가 있다.
[
    {
        "AllowedHeaders": [
            "*"
        ],
        "AllowedMethods": [
            "PUT",
            "POST",
            "DELETE"
        ],
        "AllowedOrigins": [
            "URL"
        ],
        "ExposeHeaders": []
    }
]

좋은 웹페이지 즐겨찾기