[RAILS] Heroku + ActiveStorage + Amazon S3

1 AWS-Konsole → Dienste → Speicher → Paket mit S3 erstellen

Artikel Eingabe / Auswahl
Paketname ex: my-rails-app-first-bucket
Region :flag_jp:Tokio
Zugangsrechte Alle Kontrollkästchen sind deaktiviert
Andere als die oben genannten Standard

2 Machen Sie einen Zugangsschlüssel Siehe unten https://tech-blog.s-yoshiki.com/entry/135

3 Erforderliche Gem-Installation

gem "aws-sdk-s3", require: false #Nachtrag

4 Geben Sie den Zugriffsschlüssel für S3 ein

$ EDITOR=vim rails credentials:edit

#Kommentar
aws:
 access_key_id: #Kopieren Sie hier Ihre Zugangsschlüssel-ID
 secret_access_key: #Kopieren Sie hier Ihren geheimen Zugangsschlüssel und fügen Sie ihn ein

-vi / vim operation- Starten Sie die Bearbeitung mit der i-Taste, beenden Sie die Bearbeitung mit esc, speichern Sie mit ZZ und beenden Sie Wenn Sie die Eingabe später bestätigen möchten

$ rails credentials:show

5 Ändern Sie das Speicherziel von Bildern in Heroku in Amazon S3

config/storage.yml


amazon:
  #Die folgenden 3 Zeilen bleiben unverändert
  service: S3
  access_key_id: <%= Rails.application.credentials.dig(:aws, :access_key_id) %>
  secret_access_key: <%= Rails.application.credentials.dig(:aws, :secret_access_key) %>
  #Ändern Sie die folgenden zwei Zeilen
  region: ap-northeast-1 #Tokio
  bucket: my-rails-app-first-bucket #Der Name des von Ihnen erstellten S3-Buckets

config/environmentas/production.rb


config.active_storage.service = :amazon #Wechseln Sie zu Amazon

6 Zum Schluss, was mit Heroku zu tun ist

$ 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

Kopieren Sie den Rails-Projekthauptschlüssel (Inhalt von config / master.key).

$ heroku config:set RAILS_MASTER_KEY=Fügen Sie hier den Hauptschlüssel ein
$ heroku run rails db:migrate
$ heroku open

Recommended Posts

Heroku + ActiveStorage + Amazon S3
Speichern Sie Bilder in Amazon S3 (Local / Heroku)
Bild hochladen, um Heroku S3 nachzufüllen