你好,我刚迁移到heroku cedar stack。应用程序是Rails 3,我以前一直在s3上使用回形针。我的gemfile有:
gem 'paperclip', '2.3.11'
我的模型文件有:
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包含本地开发的键,以及在heroku config中设置的键:S3_key => ak…S3_SECRET => FFE…
如前所述,在本地运行正常。我甚至可以看到以前存在的化身。只是,当我尝试上传任何新的东西时,我在heroku日志中没有错误,但图片从未上传。
我遇到过很多stackoverflow问题,但是没有一个比得上这个。有人能帮忙吗?
尝试将以下内容添加到您的模型
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"
缺少的路径/默认路径可能会导致问题。
原来我需要升级我的回形针宝石到'2.4.5'我在我的Gemfile中这样做了,然后捆绑更新,它工作了!