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上失败。
答案 0 :(得分:2)
这些是我使用的尺寸。他们在heroku上工作正常:
SIZES = {
:original => "640x480>",
:thumb => "150x150#",
:mini => "60x60#",
:micro => "30x30#"
}
确保回形针的宝石版与heroku相同。您可以在.gems
文件和environment.rb
中指定特定的gem版本,以确保它们排成一行。
我不确定你convert_options
导致问题的确切原因,但如果我没记错,paperclip会直接使用ImageScience,而您选择的选项可能与只读的heroku文件系统不兼容。
如果这很关键,你现在需要回答我会在heroku上提出支持票。如果您收到回复,请务必将其发回此处!