Laden Sie die Rails-App-Image-Datei in S3 hoch

1. Erstellen Sie einen Bucket

image.png

image.png

image.png

image.png ARN des IAM-Benutzers kopieren

image.png

Bucket Policy


{
    "Version": "2012-10-17",
    "Id": "Policy1544152951996",
    "Statement": [
        {
            "Sid": "Stmt1544152948221",
            "Effect": "Allow",
            "Principal": {
                "AWS": "************①****************"
            },
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::************②**********"
        }
    ]
}

Beschreiben Sie die "ARN des Benutzers", die Sie zuvor in (1) oben notiert haben, und den "Bucket-Namen", den Sie in (2) erstellt haben.

2. Nebeleinstellungen

gemfile


gem 'fog-aws'

bundle install

app/uploaders/image_uploader.rb


if Rails.env.development? || Rails.env.test?
  storage :file
else
  storage :fog
end

Erstellen Sie eine Datei mit dem Namen Carrierwave.rb im Stammverzeichnis der Anwendung direkt unter config / initializers.

config/initializers/carrierwave.rb


require 'carrierwave/storage/abstract'
require 'carrierwave/storage/file'
require 'carrierwave/storage/fog'

CarrierWave.configure do |config|
  if Rails.env.development? || Rails.env.test?
    config.storage = :file
  else
    config.storage = :fog
    config.fog_provider = 'fog/aws'
    config.fog_credentials = {
      provider: 'AWS',
      aws_access_key_id: ENV['AWS_ACCESS_KEY_ID'],
      aws_secret_access_key: ENV['AWS_SECRET_ACCESS_KEY'],
      region: 'ap-northeast-1'
    }
    config.fog_directory  = 'Eimername'
    config.asset_host = 'https://s3-ap-northeast-1.amazonaws.com/Eimername'
  end
end

3. Umgebungsvariablen einstellen

ec2 server


#Produktionsumfeld
$ ssh -i [Name des PEM-Schlüssels].pem ec2-user@[Elastische IP, die der erstellten EC2-Instanz zugeordnet ist]
(Mit dem heruntergeladenen Schlüssel ec2-Als Benutzer anmelden)
$ sudo vim /etc/environment
#Drücken Sie i, um in den Einfügemodus zu wechseln und Folgendes hinzuzufügen. Löschen Sie nicht die vorhandene Beschreibung.
AWS_ACCESS_KEY_ID='Kopieren Sie hier den Zugriffsschlüssel-ID-Wert der CSV-Datei'
AWS_SECRET_ACCESS_KEY='Kopieren Sie hier den Wert des geheimen Zugriffsschlüssels in die CSV-Datei'
#Drücken Sie nach der Bearbeitung die Escape-Taste:Geben Sie zum Speichern und Beenden wq ein

AWS_ACCESS_KEY_ID und AWS_SECRET_ACCESS_KEY werden in der CSV-Datei beschrieben, die beim Erstellen des IAM-Benutzers heruntergeladen wurde.

ec2 server


#Produktionsumfeld
#Melden Sie sich einmal ab, um die bearbeitete Umgebungsvariable anzuwenden.
$ exit
$ ssh -i [Name des PEM-Schlüssels].pem ec2-user@[Elastische IP, die der erstellten EC2-Instanz zugeordnet ist]
#Stellen Sie sicher, dass die Umgebungsvariablen angewendet werden.
$ env | grep AWS_SECRET_ACCESS_KEY
$ env | grep AWS_ACCESS_KEY_ID

4. Automatische Bereitstellung

① Auf GitHub drücken ② Führen Sie "Bundle Exec Cap Production Deployment" aus.

Recommended Posts

Laden Sie die Rails-App-Image-Datei in S3 hoch
Ändern Sie das Speicherziel des Bildes in der Rails-App in S3. Teil 2
[Hinweis] Von S3 herunterladen, auf S3 hochladen
Bild hochladen, um Heroku S3 nachzufüllen
[Rails] So laden Sie Bilder mit Carrierwave und Fog-Aws in AWS S3 hoch
[Rails] So laden Sie Bilder mit refile und refile-s3 in AWS S3 hoch
Migrationsdatei zum Hinzufügen eines Kommentars zur Rails-Tabelle
So ändern Sie den App-Namen in Rails
[Rails] So laden Sie Bilder mit Carrierwave hoch
Einführung von Vue.js in eine vorhandene Rails-App
Versuchen Sie, die Rails-App für EC2-Teil 2 (Bereitstellung) bereitzustellen.
So implementieren Sie die Image-Veröffentlichung mithilfe von Schienen
So erreichen Sie das Hochladen von Dateien mit Feign
Einführung von Vuetify in vorhandene Rails-Apps
Überlagerung von Bilddateien
Downgrade einer vorhandenen App, die mit Rails 5.2.4 erstellt wurde, auf 5.1.6
So geben Sie die von Rails erstellte CSV in S3 aus
[Rails] So laden Sie mehrere Bilder mit Carrierwave hoch
Vereinheitlichen Sie die Zeitzone der Rails-App mit der japanischen Zeit
Rails "So löschen Sie NO FILE-Migrationsdateien"
Ich habe versucht, das Hochladen von Dateien mit Spring MVC zu implementieren
So testen Sie den Bildschirm zum Hochladen von Dateien mit Spring + Selenium
So laden Sie Bilder von AWS S3 herunter (Rails, Carrierwave)
[Rails 6] So legen Sie ein Hintergrundbild in Rails [CSS] fest
[Schienen] So zeigen Sie Bilder in der Ansicht an
Wie schreibe ich Rails
Einführung in Bootstrap in Rails 5
Bootstrap in Rails einführen !!
[Rails 6] Laufzeitfehler mit $ Rails s
Einführung von Vue.js in Rails
So deinstallieren Sie Rails
Kann nicht auf Heroku hochgeladen werden
Ich möchte eine mit Rails 6 erstellte App an GitHub senden
Windows10 "Rails s" kann nicht gestartet werden. Zugriff auf localhost nicht möglich: 3000
So geben Sie db beim Erstellen einer App mit Rails an
So stellen Sie jQuery in Rails-Apps mit Webpacker bereit
[Rails 5] japanMap-Link So schreiben Sie Parameter in die js.erb-Datei