・ Ruby: 2.5.7 Schienen: 5.2.4 ・ Vagrant: 2.2.7 -VirtualBox: 6.1 ・ Betriebssystem: macOS Catalina
Sie haben bereits ein AWS-Konto registriert.
Folgendes wurde implementiert.
・ Implementierung der Posting-Funktion ・ Implementierung der Image-Posting-Funktion mit Carrierwave
AWS Management Console (https://ap-northeast-1.console.aws.amazon.com/console/home?region=ap-northeast-1)
** ① Geben Sie den Benutzernamen ein. (Angemessen) **
** ② Stellen Sie den Zugriffstyp auf "programmierter Zugriff". ** ** **
** ③ Klicken Sie auf Nächster Schritt: Zugriffsbeschränkung
**
** ① Geben Sie den Bucket-Namen ein. (Angemessen) **
** ② Stellen Sie die Region auf "Asien-Pazifik (Tokio)" ein. ** ** **
** ③ Klicken Sie auf "Weiter". ** ** **
** ① Einführung von "gem'dotenv-Rails" **
Gemfile
gem 'dotenv-rails'
Terminal
& bundle
** ② Erstellen Sie eine ".env" -Datei direkt unter der Anwendung **
Terminal
$ touch .env
** ③ Bearbeiten Sie die .env-Datei **
.env
S3_ACCESS_KEY_ID = 'Zugangsschlüssel' #Nachtrag
S3_SECRET_ACCESS_KEY = 'Geheimer Zugangsschlüssel' #Nachtrag
** ④ Bearbeiten Sie die .gitignore-Datei **
.gitignore
/.env #Nachtrag
Gemfile
gem 'fog-aws'
Terminal
$ bundle
image_uploader.rb
Kommentieren Sie storage: file
in der 7. Zeile aus und fügen Sie den folgenden Code hinzu.
image_uploader.rb
#Nachtrag
if Rails.env.development? #Für die Entwicklungsumgebung
storage :file
elsif Rails.env.test? #Für Testumgebung
storage :file
else #Für die Produktionsumgebung
storage :fog
end
storage :file
➡︎ Laden Sie das Bild in die Anwendung hoch.
storage :fog
➡︎ Laden Sie das Bild in S3 hoch.
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? #In der Produktionsumgebung auf S3 hochladen
config.storage :fog
config.fog_provider = 'fog/aws'
config.fog_directory = 'matsubishi-sample' #Eimername
config.fog_public = false
config.fog_credentials = {
provider: 'AWS',
aws_access_key_id: ENV['S3_ACCESS_KEY_ID'], #Zugangsschlüssel
aws_secret_access_key: ENV['S3_SECRET_ACCESS_KEY'], #Geheimer Zugangsschlüssel
region: 'ap-northeast-1', #Region
path_style: true
}
else #Laden Sie innerhalb der Anwendung hoch, wenn Sie nicht in Produktion sind
config.storage :file
config.enable_processing = false if Rails.env.test?
end
end
Recommended Posts