Rails回形针仅用于图像吗?



是否有任何rails库用于管理与ActiveRecord连接的文件附件?

我知道回形针,但它似乎主要适用于图像。他们确实在github项目页面上提到了音频和pdf文件,但没有进一步解释不同文件类型的用法。如果你上传音频文件,像:style这样的属性会改变它们的含义。所以不同的文件大小不是用二维分辨率表示的,而是用比特率表示的。

回形针的替代品吗?或者是否可以不只是链接imagemagick与回形针,但例如ffmpeg?

对于其他类型的文件,没有理由不能使用Paperclip,但是如果你想要一个替代方案,那么使用CarrierWave是不会出错的。

上面的问题包含多个facette。所以我会一一回答。

回形针:处理器

可以将回形针用于图像以外的其他文件。您可以通过子类化Paperclip::Processor来定义自定义导入操作。下面的代码显示了自定义处理器实现的最小结构。这可以适应自定义options的任何文件类型。

module Paperclip
  class FileContents < Processor
    def initialize file, options = {}, attachment = nil
      @file           = file
      @options        = options
      @instance       = attachment.instance
      @current_format = File.extname(attachment.instance.asset_file_name)
      @basename       = File.basename(@file.path, @current_format)
      @whiny          = options[:whiny].nil? ? true : options[:whiny]
    end
    def make
      begin
        # your import code (e.g. ocr or video resizing)...
        @file
      rescue StandardError => e
        raise PaperclipError, "There was an error processing the file contents for #{@basename} - #{e}" if @whiny
      end
    end
  end
end

回形针ffmpeg

有人已经为视频文件写了一个回形针处理器。看看paperclip-ffmpeg gem的源代码,看看复杂的处理器是如何编写的。

替代

以下是我找到的一些替代方案:

  • CarrierWave
  • 蜻蜓
  • attachment_fu

优点和缺点已经在这里讨论过了。

相关内容

  • 没有找到相关文章

最新更新