1

私の内部使用の小さなプロジェクトは「sharerapidのようなファイル共有ポータル」のようなもので、約100人が使用されます。大きなファイルのダウンロードに問題があります。小さなファイル(<200 MB)は高速にダウンロードされますが、最大のファイルは2〜5分間サーバーをブロックします。多分問題はRAMにあります、私は2GBの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

どこに問題があるのか​​わかりません。ローカルホストマシンの開発モードでは問題ありませんが、問題はパブリック仮想サーバー(ubuntu 12)にあります。

4

1 に答える 1

0

どのWebサーバーを使用していますか? 最も可能性の高い原因は、リクエストがシングルスレッド環境でそれ以上のリクエストをブロックしていることです。

問題の最善の解決策は、Amazon s3 でファイルをホストし、そこにリンクすることです。ファイルをローカルのままにしておく必要がある場合は、次のような方法を試すことができます。

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

于 2012-10-31T14:31:10.883 に答える