・ Ruby 2.6.6 ・ Schienen 5.2.4.1 ・ Refile wurde eingeführt ・ Verwenden Sie Gerät
Gemfile
gem "refile-s3"
gem "detenv-rails"
Terminal
$ bundle install
Ich denke auch, dass Sie während des Arbeitsprozesses einen Zugangsschlüssel und einen geheimen Zugangsschlüssel erhalten werden. Bitte bewahren Sie es an einem Ort auf, an dem niemand anderes es sehen kann. Es wird verwendet, um Umgebungsvariablen festzulegen.
Beschreibung der Beziehung zwischen Refile und AWS Erstellen Sie ** refile.rb ** in ** config / initializers **. Drin
config/initializers/refile.rb
require "refile/s3"
aws = {
access_key_id: ENV["AWS_ACCESS_KEY_ID"],
secret_access_key: ENV["AWS_SECRET_ACCESS_KEY"],
region: "Regionsname",
bucket: "Eimername",
}
Refile.cache = Refile::S3.new(prefix: "cache", **aws)
Refile.store = Refile::S3.new(prefix: "store", **aws)
Bitte beschreiben. Setzen Sie den Namen der Region auf ** ap-northeast-1 **, wenn die Region Tokio ist. Außerdem werden beim Einrichten von AWS ** AWS_ACCESS_KEY_ID ** und ** AWS_SECRET_ACCESS_KEY ** verwendet. Ich werde den Wert eingeben, den Sie notiert haben, aber es ist aus Sicherheitsgründen nicht gut, den Wert so einzugeben, wie er ist Definieren Sie es als Umgebungseinstellung in einer anderen Datei.
Umgebungsvariablen sind grob gesagt Kennwörter, die Sie verwenden können, wenn Ihr Computer ausgeführt wird. Für weitere Informationen können Sie sich gerne entspannen. Ich glaube, ich habe zuerst das Juwel ** dotenv-rail ** eingeführt, aber das ist in einer Datei namens **. Env ** Es wird reflektiert. Ich werde die Umgebungsvariablen hier schreiben. Sie können .env im Terminal erstellen, aber Sie können es auch manuell erstellen. Beides ist in Ordnung, erstellen Sie es also direkt unter Ihrem Home-Verzeichnis (wo sich die Gem-Datei usw. befindet). Als Referenz können Sie im Terminal Folgendes tun.
Terminal
$ touch .env
Schreiben Sie nach dem Erstellen von ** .env ** den Inhalt.
.env
AWS_ACCESS_KEY_ID =Zugangsschlüssel
AWS_SECRET_ACCESS_KEY =Geheimer Zugangsschlüssel
Aus Sicherheitsgründen kann ich meinen Schlüssel nicht schreiben, aber mit dem Zugangsschlüssel, den ich hier notiert habe Geben Sie den Wert des geheimen Zugriffsschlüssels ein. Außerdem wäre es beim Hochladen von Code auf github schlecht, wenn ich diese Datei sehen könnte. Schreiben Sie **. Env ** in **. Gitignore **.
.gitignore
/.env
Schließlich werden wir Heroku auf S3 einstellen. Öffnen Sie die App, die Sie für S3 verwenden möchten, öffnen Sie ** Einstellung **, drücken Sie ** Revig Config Vars ** in ** Config Vars ** und geben Sie ** KEY ** und ** VALUE ** ein. Ich denke, es wird eine Kolumne geben. Geben Sie den Wert ein, der dort als Umgebungsvariable festgelegt wurde. AWS_ACCESS_KEY_ID für KEY, ** Zugriffsschlüssel ** für VALUE AWS_SECRET_ACCESS_KEY für KEY und ** Secret Access Key ** für VALUE Bitte setzen Sie jeden.
Das Setup ist abgeschlossen.
Zum Schluss stellen wir es für Heroku bereit und überprüfen es.
python
$ git add .
$ git commit -m "commit S3"
$ git push heroku master
$ heroku run rails db:migrate
$ heroku open
Ich denke, dass das Bild, das nach einer gewissen Zeit verschwunden ist, erhalten bleibt! Wenn Sie in S3 von AWS tatsächlich auf den Bucket-Namen klicken Es gibt einen Ordner namens store, und Sie können sehen, dass sich die Bilder darin befinden.
Mit dem oben genannten können Sie das Bild mit der Kombination von Heroku + S3 + Refile auf S3 hochladen. Ich hoffe, es wird so vielen Menschen wie möglich helfen.
Recommended Posts