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