8
votes

Stockage des informations d'identification Amazon S3 dans les variables environnementales .CASHRC provoque l'échec des rails

Je développe une application Rails qui utilise des trombones pour stocker des trucs sur Amazon S3. L'application est hébergée sur Heroku. Je me développe sur Ubuntu Karmic.

Le problème que je suis sur le point de décrire des événements dans le développement (sur mon localhost) et la production (sur Heroku). P>


La manière standard de transmission S3 Les crédits sur PaperClip sont en les mettant dans CONFIG / S3.yml comme: P>

  has_attached_file :photo,
                (some code removed)
                :s3_credentials => "#{RAILS_ROOT}/config/initializers/s3.yml",


0 commentaires

3 Réponses :


2
votes

renommer le fichier config / initialiseurs / s3.yml à config / initialiseurs / s3rb et donnez-le essayer.


2 commentaires

désolé les gens, ça ne marche pas. même problème, même message d'erreur aussi. Je sais que le fichier est en cours de lecture car je reçois une erreur de fichier non trouvé si je change son nom. Je sais aussi que les variables env sont en train d'être lues comme je reçois une exception si je change le nom de la clé de S3.rb. Quoi qu'il en soit, ce n'est pas la fin du monde HTE et je pense que je vais passer d'ici et laisser cela seul. Cela signifie juste que je devrai faire très attention lorsque vous mettrez des trucs sur GitHub, mais je peux vivre avec ça. Merci de votre aide. Si je commence à travailler, je vous ferai tout savoir.


Aussi - Metts env ['s3_key'] de la console de rails fonctionne bien - alors je pense que cela pourrait être un problème de papier - merci quand même



13
votes

Après de nombreuses recherches, j'ai trouvé la réponse ici - http: / /Tammersealeh.com/posts/Manging-heroku-environment-variables-for-Local-development

L'astuce consiste à supprimer complètement le fichier S3.rb et à désigner simplement les variables env. : P>

has_attached_file :photo, 
                  #...
                  :storage        => :s3, 
                  :bucket         => ENV['S3_BUCKET'],
                  :s3_credentials => { :access_key_id     => ENV['S3_KEY'], 
                                       :secret_access_key => ENV['S3_SECRET'] }


0 commentaires

1
votes

Voici votre problème:

:bucket         => <%= ENV['S3_BUCKET'] %>,


0 commentaires