class User < ActiveRecord::Base
has_attached_file :photo, :styles => { :square => "100%", :large => "100%" },
:convert_options => {
:square => "-auto-orient -geometry 70X70#",
:large => "-auto-orient -geometry X300" },
:storage => :s3,
:s3_credentials => "#{RAILS_ROOT}/config/s3.yml",
:path => ":attachment/:id/:style.:extension",
:bucket => 'mybucket'
validates_attachment_size :photo,
:less_than => 5.megabyte
end
在本地机器上工作得很好,但在 Heroku 上给我一个错误:There was an error processing the thumbnail for stream.20143
问题是我想在调整大小之前自动定位照片,所以它们调整大小正确。
现在唯一可行的变体(感谢 jonnii)是在没有自动定向的情况下调整大小:
...
as_attached_file :photo, :styles => { :square => "70X70#", :large => "X300" },
:storage => :s3,
:s3_credentials => "#{RAILS_ROOT}/config/s3.yml",
:path => ":attachment/:id/:style.:extension",
:bucket => 'mybucket'
...
如何在 Heroku 上将其他转换选项传递给回形针?
UPD
我发现,“-auto-orient”选项的问题。似乎这个选项在 Heroku 使用的 ImageMagick 版本中被破坏了。我创建了从回形针的标准缩略图继承的自定义回形针图像处理器:
module Paperclip
class Ao < Thumbnail
def transformation_command
super + " -auto-orient"
end
end
end
它在本地机器上完美运行,但在 Heroku 上失败。