
・ Rubis: 2.5.7 Rails: 5.2.4 ・ Vagrant: 2.2.7 -VirtualBox: 6.1 ・ Système d'exploitation: macOS Catalina
Vous avez déjà enregistré un compte AWS.
Ce qui suit a été mis en œuvre.
・ Mise en œuvre de la fonction de publication ・ Implémentation de la fonction de publication d'images à l'aide de Carrierwave
AWS Management Console (https://ap-northeast-1.console.aws.amazon.com/console/home?region=ap-northeast-1)




** ① Entrez le nom d'utilisateur. (Approprié) **
** ② Réglez le type d'accès sur «accès programmé». ** **
** ③ Cliquez sur Étape suivante: restriction d'accès **


 et cliquez sur Étape suivante: Tag`





** ① Entrez le nom du bucket. (Approprié) **
** ② Définissez la région sur «Asie Pacifique (Tokyo)». ** **
** ③ Cliquez sur «Suivant». ** **




** ① Introduction de "gem'dotenv-rails '" **
Gemfile
gem 'dotenv-rails'
Terminal
& bundle
** ② Créez un fichier ".env" directement sous l'application **
Terminal
$ touch .env 

** ③ Editez le fichier .env **
.env
S3_ACCESS_KEY_ID = 'clé d'accès' #Postscript
S3_SECRET_ACCESS_KEY = 'Clé d'accès secrète' #Postscript
** ④ Editez le fichier .gitignore **
.gitignore
/.env #Postscript
Gemfile
gem 'fog-aws'
Terminal
$ bundle
Mettez en commentaire storage: file sur la 7ème ligne et ajoutez le code suivant.
image_uploader.rb
#Postscript
if Rails.env.development? #Pour l'environnement de développement
  storage :file
elsif Rails.env.test? #Pour l'environnement de test
  storage :file
else #Pour l'environnement de production
  storage :fog
end
storage :file
➡︎ Téléchargez l'image dans l'application.
storage :fog
➡︎ Téléchargez l'image sur S3.
carrierwave.rbTerminal
$ touch config/initializers/carrierwave.rb
carrierwave.rb
require 'carrierwave/storage/abstract'
require 'carrierwave/storage/file'
require 'carrierwave/storage/fog'
CarrierWave.configure do |config|
  if Rails.env.production? #Télécharger vers S3 dans l'environnement de production
    config.storage :fog
    config.fog_provider = 'fog/aws'
    config.fog_directory  = 'matsubishi-sample' #Nom du godet
    config.fog_public = false
    config.fog_credentials = {
      provider: 'AWS',
      aws_access_key_id: ENV['S3_ACCESS_KEY_ID'], #clé d'accès
      aws_secret_access_key: ENV['S3_SECRET_ACCESS_KEY'], #Clé d'accès secrète
      region: 'ap-northeast-1', #Région
      path_style: true
    }
  else #Télécharger dans l'application s'il n'est pas en production
    config.storage :file
    config.enable_processing = false if Rails.env.test?
  end
end
        Recommended Posts