【发布时间】:2014-01-27 19:06:34
【问题描述】:
我正在从 Ruby 1.8.7 升级到 1.9.3 以及从 Rails 2.3 升级到 3.2 作为升级的一部分,我正在从 Paperclip 2.2.9 升级到 3.5.2。我的 ImageMagick 版本是 6.8.6。作为升级过程的一部分,我发现的一个问题是,对于大型 (~1 MB) 文本文件,上传性能非常差。有问题的文件不需要特别是 .txt 文件,任何纯文本格式的文件(例如 .xml 文件)也会受到影响。
供您参考,这是我的回形针设置:
has_attached_file :attachment,
:url => "/shared_documents/:id/:basename.:extension",
:path => ":rails_root/user_uploaded_content/shared_documents/:id/:basename.:extension"
为简单起见,我省略了我们的验证等,因为我们只是检查文件大小和存在。
观察我的开发机器上运行的顶级进程,似乎在 Paperclip 调用 ImageMagick 的identify 命令时出现了瓶颈。通过命令行对各种文件调用 identify 使我能够验证图像文件的元数据几乎立即返回,但大型非图像文本文件需要很长时间才能处理。
对于我的应用程序,我允许用户以他们喜欢的任何格式上传文档,因此我必须能够有效地处理图像和文本文件。有没有其他人遇到过这个问题?有没有办法选择性地禁用对 Paperclip 中某些文件格式而不是其他文件格式的调用 identify?如果做不到这一点,我们可以忍受不打电话给identify(如果这是一个选项)。也许有办法设置配置 ImageMagick 以更优雅地处理大型文本文件?
【问题讨论】:
标签: ruby-on-rails ruby imagemagick paperclip