使用Ruby on Rails下载大文件

时间:2012-10-31 14:21:42

标签: ruby-on-rails apache download

我的内部使用的小项目类似于“像sharerapid这样的文件共享门户”,它将使用大约100人。我有下载大文件的问题。小文件(<200 MB)正在快速下载,但是最大的文件会阻塞我的服务器2-5分钟。也许问题是RAM,我有2 GB RAM。我的代码下载文件:

def custom_send(userfile)
    file = userfile.attachment.file.url.to_s.split("?").slice(0..-2).join("?")
    send_file "#{Rails.root.to_s}/public#{file}" , filename: userfile.name, x_sendfile: true
end

我不知道问题出在哪里,在我的localhost机器上的开发模式下没问题,但问题出在公共虚拟服务器上(ubuntu 12)。

1 个答案:

答案 0 :(得分:0)

您使用的是哪种Web服务器?最可能的原因是请求阻止了单线程环境中的进一步请求。

您问题的最佳解决方案是在亚马逊s3上托管文件并在那里链接到它们。如果文件必须保持在本地,你可以尝试更像这样的东西:

http://www.therailsway.com/2009/2/22/file-downloads-done-right/