・ 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.rb
Terminal
$ 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