[RAILS] télécharger l'image pour refiler heroku S3

Prérequis

・ Rubis 2.6.6 ・ Rails 5.2.4.1 ・ Refile a été introduit ・ Utilisez un appareil

Présentation Télécharger des images vers S3 avec la combinaison de heroku + S3 + refile Je vais l'écrire pour ne pas oublier la méthode. J'ai eu beaucoup de mal à le mettre en œuvre, alors j'espère que cela aidera ces gens.

Introduction de refile-s3 Il existe un gemme appelé 'fichier-s3'in refile qui fonctionne avec AWS S3. Tout d'abord, installez ce joyau et effectuez une installation groupée. De plus, étant donné que nous utiliserons les variables d'environnement plus tard, nous inclurons également un joyau appelé'etenv-rails '.

Gemfile


gem "refile-s3"
gem "detenv-rails"

Terminal


$ bundle install

Création de comptes et de buckets AWS Pour gérer AWS S3, vous devez configurer AWS. [Comment télécharger des images sur AWS S3 à l'aide de Carrierwave et de fog-aws](https://qiita.com/matsubishi5/items/c2abdd7375a4c683392a) Reportez-vous à la section «Transformer les clés en variables d'environnement» ci-dessus dans les paramètres et l'implémentation AWS.

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.

Créer refile.rb

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.

Définition des variables d'environnement

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

Réglez sur heroku

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.

Déployer sur heroku

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.

finalement

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.

Article de référence https://qiita.com/matsubishi5/items/c2abdd7375a4c683392a

Recommended Posts

télécharger l'image pour refiler heroku S3
Enregistrer les images sur Amazon S3 (Local / Heroku)
Impossible de télécharger sur heroku
[Rails] Comment télécharger des images sur AWS S3 à l'aide de refile et refile-s3
[Note] Télécharger depuis S3, télécharger vers S3
[Rails] Comment télécharger des images sur AWS S3 à l'aide de Carrierwave et de fog-aws
[Rails] Comment télécharger des images à l'aide de Carrierwave
Télécharger le fichier image de l'application Rails sur S3
[Rails] Comment télécharger plusieurs images à l'aide de Carrierwave
[Ruby on Rails] Téléversement de plusieurs images avec refile
Étapes de déploiement sur Heroku
Heroku + ActiveStorage + Amazon S3
Comment télécharger des images depuis AWS S3 (rails, carrierwave)
[rails] Comment publier des images
Comment gérer les images téléchargées
Comment déployer avec heroku
Comment réduire les images Java
S3 Presigner ajouté à aws-sdk-java-v2
Enregistrer l'icône Twitter sur s3
[Java] Téléchargez une image et convertissez-la en Base64