Télécharger le fichier image de l'application Rails sur S3

1. Créer un bucket

image.png

image.png

image.png

image.png Copier l'ARN de l'utilisateur IAM

image.png

Politique de seau


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

Décrivez l '«ARN de l'utilisateur» que vous avez noté plus tôt dans (1) ci-dessus, et le «nom du compartiment» que vous avez créé dans (2).

2. paramètres de brouillard

gemfile


gem 'fog-aws'

bundle install

app/uploaders/image_uploader.rb


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

Créez un fichier appelé carrierwave.rb à partir de la racine de l'application directement sous 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  = 'Nom du godet'
    config.asset_host = 'https://s3-ap-northeast-1.amazonaws.com/Nom du godet'
  end
end

3. Définition des variables d'environnement

serveur ec2


#Environnement de production
$ ssh -i [nom de la clé pem].pem ec2-user@[Adresse IP élastique associée à l'instance EC2 créée]
(En utilisant la clé téléchargée, ec2-Connectez-vous en tant qu'utilisateur)
$ sudo vim /etc/environment
#Appuyez sur i pour passer en mode insertion et ajoutez ce qui suit. Ne supprimez pas la description existante.
AWS_ACCESS_KEY_ID='Copiez ici la valeur d'ID de clé d'accès du fichier CSV'
AWS_SECRET_ACCESS_KEY='Copiez la valeur de la clé d'accès secrète dans le fichier CSV ici'
#Après l'édition, appuyez sur la touche d'échappement:Tapez wq pour enregistrer et quitter

AWS_ACCESS_KEY_ID et AWS_SECRET_ACCESS_KEY sont décrits dans le fichier CSV téléchargé lors de la création de l'utilisateur IAM.

serveur ec2


#Environnement de production
#Déconnectez-vous une fois pour appliquer la variable d'environnement modifiée.
$ exit
$ ssh -i [nom de la clé pem].pem ec2-user@[Adresse IP élastique associée à l'instance EC2 créée]
#Assurez-vous que les variables d'environnement sont appliquées.
$ env | grep AWS_SECRET_ACCESS_KEY
$ env | grep AWS_ACCESS_KEY_ID

4. Déploiement automatique

① Pousser vers GitHub ② Exécuter le «déploiement de la production de la limite d'exécution du bundle»

Recommended Posts

Télécharger le fichier image de l'application Rails sur S3
Modifiez la destination d'enregistrement de l'image en S3 dans l'application Rails. Partie 2
[Note] Télécharger depuis S3, télécharger vers S3
télécharger l'image pour refiler heroku 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 sur AWS S3 à l'aide de refile et refile-s3
Fichier de migration pour ajouter un commentaire à la table Rails
Comment changer le nom de l'application dans les rails
[Rails] Comment télécharger des images à l'aide de Carrierwave
Présentation de Vue.js à une application Rails existante
Essayez de déployer l'application Rails sur EC2-Part 2 (déploiement) -
Pour implémenter la publication d'images à l'aide de rails
Comment réaliser le téléchargement de fichiers avec Feign
Introduction de Vuetify aux applications Rails existantes
Superposition de fichier image
Rétrograder une application existante créée avec les rails 5.2.4 vers 5.1.6
Comment sortir le CSV créé par Rails vers S3
[Rails] Comment télécharger plusieurs images à l'aide de Carrierwave
Unifier le fuseau horaire de l'application Rails à l'heure japonaise
Rails "Comment supprimer les fichiers de migration NO FILE"
J'ai essayé d'implémenter le téléchargement de fichiers avec Spring MVC
Comment tester l'écran de téléchargement de fichiers avec Spring + Selenium
Comment télécharger des images depuis AWS S3 (rails, carrierwave)
[Rails 6] Comment définir une image d'arrière-plan dans Rails [CSS]
[Rails] Comment afficher les images dans la vue
Comment écrire des rails
Présentation de Bootstrap à Rails 5
Présentation de Bootstrap aux rails !!
[Rails 6] Erreur d'exécution avec $ rails s
Présentation de Vue.js à Rails
Comment désinstaller Rails
Impossible de télécharger sur heroku
Je veux pousser une application créée avec Rails 6 vers GitHub
Les "rails s" de Windows10 ne peuvent pas être démarrés. Impossible d'accéder à localhost: 3000
Comment spécifier la base de données lors de la création d'une application avec des rails
Comment déployer jQuery dans les applications Rails à l'aide de Webpacker
[Rails 5] lien japanMap Comment écrire des paramètres dans le fichier js.erb