・ Rubis 2.6.6 ・ Rails 5.2.4.1 ・ Refile a été introduit ・ Utilisez un appareil
Gemfile
gem "refile-s3"
gem "detenv-rails"
Terminal
$ bundle install
De plus, je pense que vous obtiendrez une clé d'accès et une clé d'accès secrète pendant le processus de travail, Veuillez le conserver dans un endroit où personne d'autre ne peut le voir. Il est utilisé pour définir les variables d'environnement.
Pour décrire la relation entre le refile et AWS Créez ** refile.rb ** dans ** config / initializers **. Dedans
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: "Nom de la région",
bucket: "Nom du godet",
}
Refile.cache = Refile::S3.new(prefix: "cache", **aws)
Refile.store = Refile::S3.new(prefix: "store", **aws)
Décrivez s'il vous plait. Pour le nom de la région, définissez-le sur ** ap-nord-est-1 ** si la région est Tokyo. En outre, ** AWS_ACCESS_KEY_ID ** et ** AWS_SECRET_ACCESS_KEY ** sont utilisés lors de la configuration d'AWS. Je vais entrer la valeur que vous avez notée, mais il n'est pas bon de saisir la valeur telle quelle pour des raisons de sécurité, donc Définissez-le comme paramètre d'environnement dans un autre fichier.
Les variables d'environnement sont, en gros, des mots de passe que vous pouvez utiliser lorsque votre ordinateur fonctionne. Pour plus d'informations, n'hésitez pas à vous détendre. Je pense avoir introduit le gem ** dotenv-rails ** en premier, mais c'est dans un fichier appelé **. Env ** Cela sera reflété. J'écrirai ici les variables d'environnement. Vous pouvez créer .env dans le terminal, mais vous pouvez également le créer manuellement. L'un ou l'autre convient, alors créez-le directement sous votre répertoire personnel (où se trouve le fichier gem etc.) Pour référence, vous pouvez effectuer les opérations suivantes dans le terminal.
Terminal
$ touch .env
Après avoir créé ** .env **, écrivez le contenu.
.env
AWS_ACCESS_KEY_ID =clef d'accès
AWS_SECRET_ACCESS_KEY =Clé d'accès secrète
Pour des raisons de sécurité, je ne peux pas écrire ma clé, mais avec la clé d'accès, j'ai noté ici Entrez la valeur de la clé d'accès secrète. De plus, lors du téléchargement de code sur github, ce serait mauvais si je pouvais voir ce fichier. Écrivez **. Env ** dans **. Gitignore **.
.gitignore
/.env
Enfin, nous allons configurer heroku pour utiliser S3. Ouvrez l'application que vous souhaitez utiliser S3, ouvrez ** Setting **, appuyez sur ** Reveal Config Vars ** dans ** Config Vars **, et entrez ** KEY ** et ** VALUE ** Je pense qu'il y aura une colonne. Entrez la valeur qui a été définie comme variable d'environnement ici. AWS_ACCESS_KEY_ID pour KEY, ** clé d'accès ** pour VALUE AWS_SECRET_ACCESS_KEY pour KEY et ** Secret Access Key ** pour VALUE Veuillez mettre chacun.
La configuration est terminée.
Enfin, déployons-le sur heroku et vérifions-le.
python
$ git add .
$ git commit -m "commit S3"
$ git push heroku master
$ heroku run rails db:migrate
$ heroku open
Je pense que l'image qui a disparu après un certain temps restera! Lorsque vous cliquez réellement sur le nom du compartiment à partir de S3 d'AWS Il existe un dossier appelé store, et vous pouvez voir que les images s'y trouvent.
Avec ce qui précède, vous pouvez télécharger l'image sur S3 avec la combinaison de heroku + S3 + refile. J'espère qu'il sera utile au plus grand nombre de personnes possible.
Recommended Posts