如何避免回形针中的 Post 处理

How can I avoid the Post Processing in Paperclip

我使用 Paperclip 对 Tiff 和 PDF 进行文档和图像处理。 所以可以下载 Tiff 和 PDF。 Tiff 应转换为 PDF,而 PDF 应保持原样。但是当我下载 PDF 时,目标文件只有一页。 Paperclip 的 Post 处理似乎进行了自动转换:

convert '/tmp/00c865a9d6c212a20cd851a448969f5520160530-4574-1yqdtq.pdf[0]' -auto-orient '/tmp/00c865a9d6c212a20cd851a448969f5520160530-4574-1yqdtq20160530-4574-8l8k7z.pdf'

如何避免 Post 处理?

我的代码:

has_mongoid_attached_file :document, styles: lambda { |a|
  if a.instance.isTiff?
  {
    pdf: {
      format: 'pdf',
      processors: [:tiff_to_pdf]
    }
  }
  else
  {
    pdf: {
      format: 'pdf'
    }
  }
end
}

请阅读文档:

https://github.com/thoughtbot/paperclip#post-processing https://github.com/thoughtbot/paperclip#events

你可以这样做:

class Message < ActiveRecord::Base
  has_attached_file :asset, styles: {thumb: "100x100#"}

  before_post_process :skip_for_audio

  def skip_for_audio
    ! %w(audio/ogg application/ogg).include?(asset_content_type)
  end
end

我的解决方案是为 pdf 构建一个自己的处理器,它只是复制自己。似乎没有设置自己的处理器就使用了默认处理器,这导致了这种行为。