图像文件无法被“identify”命令识别。(heroku)

9
我正在尝试使用Heroku和Amazon S3配置Paperclip。
在本地主机(Mac OS和Amazon)上一切正常,但在部署到Heroku并尝试使用该功能时,出现以下错误:
2 errors prohibited this area from being saved:
Asset /tmp/paris20121005-2-2cwxgx.jpg is not recognized by the 'identify' command.
Asset /tmp/paris20121005-2-2cwxgx.jpg is not recognized by the 'identify' command.

当我在模型中删除:styles => { }选项时,它可以工作,但是文件不会被处理(我需要不同的图像尺寸)。

我还在我的gemfile中使用了rmagick gem。

这是我的gemfile(仅包含paperclip部分):

gem "paperclip"
gem "rmagick", :require => 'RMagick'
gem 'aws-sdk', '~> 1.3.4'

我没有在我的environment.rb或production.rb中设置Paperclip.options [:command_path],所以这方面没有问题。

这是我的模型:

class Area < ActiveRecord::Base
  require 'RMagick'
  has_attached_file :asset, :styles => { :medium => "300x300>", :thumb => "180x190>" },
       :storage => :s3,
       :s3_credentials => "#{::Rails.root.to_s}/config/s3.yml",
       :url => :s3_domain_url.to_s,
       :path => "/:style/:id/:filename"
end

有什么线索吗?我已经爬过所有相关的主题,但似乎没有任何作用...谢谢。
1个回答

19

显然Cocaine gem(0.4.0)的新更新破坏了Paperclip和ImageMagick的文件名。尝试回滚到先前的版本(0.3.2),这对我有用。

在此处查看:

https://github.com/thoughtbot/paperclip/issues/1038

PS:我相信在Heroku上不再需要RMagick,没有它也可以正常工作。


非常感谢!将Cocain版本更改为0.3.2对我非常有效!是的,我删除了RMagick,它不是必需的。 - Loïc Reperant
嗨@Itai Leibowitz,我遇到了同样的问题,但是我没有在我的应用程序中包含cocaine gem。至少我在我的gemfile中看不到它。您能告诉我如何在Heroku上做吗?非常感谢您的帮助! - justicepenny
1
Heroku会自动包含它 - 您只需要像以下这样将其添加到gemfile中:gem 'cocaine','0.3.2'PS请检查我发布的原始链接 - 似乎已经更新了paperclip / cocaine以解决此问题。 - Itai Leibowitz
谢谢。我因此苦恼了很久。没想到这个宝石已经包含在我的捆绑包中了。我在Gemfile.lock中有一个更早的版本(0.1.x),但我没有意识到。 - umezo
这个问题已经在2.8.0版本和最新的几个paperclip版本中得到了解决。 - maletor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接