перенесли приложение rails3 в heroku, теперь paperclip + s3 не загружает файлы - ничего в логах heroku - PullRequest
1 голос
/ 13 декабря 2011

Привет, я только что перешел на стог кедровых героев.Приложение - Rails 3, раньше я отлично использовал paperclip на s3.мой gemfile содержит:

gem 'paperclip', '2.3.11' gem 'aws-s3', '0.6.2'

в файле моей модели:

class UserProfile < ActiveRecord::Base
has_attached_file :avatar, 
                :styles => { :thumb  => "150x200#" }, 
                :default_style => :thumb, 
                :default_url => "missingAvatar.png",
                :storage => :s3,
                :s3_credentials => S3_CREDENTIALS

Я создал новый файл для хранения S3_CREDENTIALS,:

# initializers/s3.rb
if Rails.env == "production"
  # set credentials from ENV hash
S3_CREDENTIALS = { :access_key_id => ENV['S3_KEY'], :secret_access_key => ENV['S3_SECRET'], :bucket => "app_content"}
else
  # get credentials from YML file
S3_CREDENTIALS = Rails.root.join("config/s3.yml")
end

... с s3.yml, содержащим мои ключи для локального dev и ключи, установленные в конфигурации heroku: S3_KEY => AK ...S3_SECRET => FFE ...

как уже упоминалось, на локальном все работает нормально.я даже могу видеть существующие аватары из ранее.просто, когда я пытаюсь загрузить что-то новое, я не получаю ошибок в логах heroku, но картинка никогда не загружается.

Я прошел через много проблем с переполнением стека, но ни одна из них не соответствовала этому.может кто-нибудь помочь ??

Ответы [ 2 ]

0 голосов
/ 20 декабря 2011

оказалось, что мне нужно обновить драгоценный камень для скрепки до 2.4.5 я сделал это в своем Gemfile, затем обновил пакет, и это сработало!

0 голосов
/ 13 декабря 2011

Попробуйте добавить следующее к вашей модели

class UserProfile < ActiveRecord::Base
has_attached_file :avatar, 
                :styles => { :thumb  => "150x200#" }, 
                :default_style => :thumb, 
                :default_url => "missingAvatar.png",
                :storage => :s3,
                :s3_credentials => S3_CREDENTIALS,
                :url  => "/assets/avatar/:id/:style/:basename.:extension",
                :path => ":rails_root/public/assets/avatar/:id/:style/:basename.:extension"

Отсутствующий путь / путь по умолчанию может вызывать проблему.

...