ARN des IAM-Benutzers kopieren
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.
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
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
① Auf GitHub drücken ② Führen Sie "Bundle Exec Cap Production Deployment" aus.
Recommended Posts