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",
3 Réponses :
renommer le fichier config / initialiseurs / s3.yml code> à
config / initialiseurs / s3rb code> et donnez-le essayer. P>
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
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'] }
Voici votre problème:
:bucket => <%= ENV['S3_BUCKET'] %>,