Как передать дополнительные параметры конвертации в скрепку на Heroku? - PullRequest
3 голосов
/ 17 марта 2010
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 Дело в том, что я хочу автоматически ориентировать фотографии перед их изменением, чтобы они правильно менялись.

Единственный работающий вариант сейчас (благодаря Джонни) - изменение размера без автоориентации:

...
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

Я обнаружил, проблема в опции "-автоориента". Похоже, эта опция не работает в версии ImageMagick, используемой Heroku. Я создал специальный обработчик изображений скрепки, унаследованный от стандартного эскиза скрепки:

module Paperclip

  class Ao < Thumbnail

    def transformation_command
      super + " -auto-orient"
    end

   end
end

Он отлично работает на локальной машине, но не работает на Heroku.

1 Ответ

2 голосов
/ 17 марта 2010

Это размеры, которые я использую. Они все прекрасно работают на герою:

SIZES = {
  :original => "640x480>",
  :thumb => "150x150#",
  :mini => "60x60#",
  :micro => "30x30#"
}

Убедитесь, что ваша версия драгоценного камня скрепка такая же, как у heroku. Вы можете указать конкретную версию гема в вашем .gems файле и в environment.rb, чтобы убедиться, что они выстроились в линию.

Я не совсем уверен, почему ваши convert_options вызывают проблемы, но если я правильно помню, скрепка напрямую использует ImageScience, и выбранные вами параметры могут быть несовместимы с файловой системой heroku только для чтения.

Если это критично, и вам нужен ответ прямо сейчас, я бы поднял билет поддержки на Герою. Если вы получили ответ, обязательно отправьте его сюда!

...