1

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

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

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

4

1 回答 1

0

您使用的是什么网络服务器?最可能的原因是该请求在单线程环境中阻塞了进一步的请求。

解决您的问题的最佳方法是将文件托管在 amazon s3 上并在那里链接到它们。如果文件必须保留在本地,您可以尝试类似这样的操作:

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

于 2012-10-31T14:31:10.883 回答