كيفية تمرير خيارات تحويل إضافية إلى Paperclip على Heroku؟

StackOverflow https://stackoverflow.com/questions/2465035

  •  20-09-2019
  •  | 
  •  

سؤال

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

كيفية تمرير خيارات تحويل إضافية إلى Paperclip على Heroku؟

UPD

أكتشف ، المشكلة في خيار "-auto-Orient". يبدو أن هذا الخيار مكسور في إصدار ImageMagick الذي يستخدمه Heroku. لقد قمت بإنشاء معالج صور Paperclip مخصص الموروث من الصورة المصغرة القياسية لـ PaperClip:

module Paperclip

  class Ao < Thumbnail

    def transformation_command
      super + " -auto-orient"
    end

   end
end

إنه يعمل بشكل مثالي على الجهاز المحلي ، لكنه يفشل على هيروكو.

هل كانت مفيدة؟

المحلول

هذه هي الأحجام التي أستخدمها. انهم جميعا يعملون بشكل جيد على هيروكو:

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

تأكد من إصدار GEM الخاص بك من مشبك ورق هو نفس هيروكو. يمكنك تحديد إصدار GEM المحدد في الخاص بك .gems الملف وفي الخاص بك environment.rb للتأكد من أنها تصطف.

لست متأكدًا تمامًا لماذا convert_options تسبب مشاكل ، ولكن إذا كنت أتذكر بشكل صحيح ، فإن PaperClip يستخدم الصور مباشرة وقد تكون الخيارات التي اخترتها غير متوافقة مع نظام ملفات Heroku فقط.

إذا كان هذا أمرًا بالغ الأهمية وتحتاج إلى إجابة الآن ، فسوف أقوم برفع تذكرة دعم على Heroku. إذا حصلت على رد ، فتأكد من نشره هنا!

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top