[RAILS] Heroku + ActiveStorage + Amazon S3

1 AWS Console → Services → Stockage → Créer un paquet avec S3

article Entrée / sélection
Nom du paquet ex: my-rails-app-first-bucket
Région :flag_jp:Tokyo
Des droits d'accès Toutes les cases à cocher sont désactivées
Autre que ceux ci-dessus Défaut

2 Créer une clé d'accès Voir ci-dessous https://tech-blog.s-yoshiki.com/entry/135

3 Installation Gem requise

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

4 Entrez la clé d'accès à S3

$ EDITOR=vim rails credentials:edit

#Décommenter
aws:
 access_key_id: #Copiez votre ID de clé d'accès ici
 secret_access_key: #Copiez et collez votre clé d'accès secrète ici

-opération vi / vim- Commencez l'édition avec la touche i, terminez l'édition avec esc, enregistrez avec ZZ et terminez Si vous souhaitez confirmer l'entrée plus tard

$ rails credentials:show

5 Changez la destination de sauvegarde des images dans Heroku en Amazon S3

config/storage.yml


amazon:
  #Les 3 lignes suivantes restent telles quelles
  service: S3
  access_key_id: <%= Rails.application.credentials.dig(:aws, :access_key_id) %>
  secret_access_key: <%= Rails.application.credentials.dig(:aws, :secret_access_key) %>
  #Modifiez les deux lignes suivantes
  region: ap-northeast-1 #Tokyo
  bucket: my-rails-app-first-bucket #Le nom du compartiment S3 que vous avez créé

config/environmentas/production.rb


config.active_storage.service = :amazon #Changer pour amazon

6 Enfin, que faire avec 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

Copiez la clé principale du projet Rails (contenu de config / master.key)

$ heroku config:set RAILS_MASTER_KEY=Collez la clé principale ici
$ heroku run rails db:migrate
$ heroku open

Recommended Posts

Heroku + ActiveStorage + Amazon S3
Enregistrer les images sur Amazon S3 (Local / Heroku)
télécharger l'image pour refiler heroku S3