3
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 では失敗します。

4

1 に答える 1

2

これらは私が使用するサイズです。それらはすべてherokuで正常に動作します:

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

paperclip のgem バージョンがherokuのものと同じであることを確認してください。.gemsファイルと で特定の gem バージョンを指定して、environment.rbそれらが確実に一致するようにすることができます。

なぜあなたconvert_optionsが問題を引き起こしているのか正確にはわかりませんが、私の記憶が正しければ、paperclip は ImageScience を直接使用しており、選択したオプションは読み取り専用の heroku ファイル システムと互換性がない可能性があります。

これが重要で、今すぐ回答が必要な場合は、heroku でサポート チケットを発行します。返信があった場合は、必ずここに投稿してください。

于 2010-03-17T19:35:53.293 に答える