pluploadを使用したファイルのアップロードをサポートするBackbone.jsアプリがあります。アップロードはプロキシ(現時点ではrack-reverse-proxyですが、まもなくストレートnginxに切り替わります)を介して、APIを介して別のRailsアプリに送信されます。
このAPIはかなり長い間使用されており、数百MBのアップロードを処理できます。それが問題だとは思いません。
ただし、アップロードがBB.jsとプロキシを介して実行される場合、それらは異なるポイントで停止する可能性がありますが、ほとんどの場合、1.5MB未満のポイントで停止します。
1MB未満の複数のファイルをアップロードしようとすると、同じ状況で正常に機能することに注意してください。1MBのファイルを100個アップロードできますが、たとえば2MBを超えるファイルはアップロードできません。
BB.jsアプリからの例外は次のとおりです。
- Uncaught SyntaxError:予期しない入力の終了
- SyntaxError:JSON解析エラー:予期しないEOF
これにアプローチするための最良の方法は何ですか?主な原因はネットワーク接続が遅いことのようです(ファイバーベースのホームネットワークを介したサーバーへのアップロードは完了する傾向がありますが、職場のDSL回線を介したアップロードは失敗する傾向があります)が、それが途方に暮れて乾燥しているとは想像できません。
それは私たちのプロキシ設定ですか?nginxに切り替えるとこれは修正されますか?この目的のためにnginxを設定するための最良の方法は何ですか?
Maurícioのコメントに答えるために編集してください:
サーバーから何も返されません。WebKit Network Inspectorによって報告されたヘッダーは次のとおりです(ホスト名が変更されました)。
Request URL:http://our.site.com/api/files
Request Headersview source
Content-Length:131661475
Content-Type:multipart/form-data; boundary=----WebKitFormBoundaryHwVBiFW8AIuh18Bt
DNT:1
Origin:http://our.site.com
Referer:http://our.site.com/
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/534.57.2 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2
Request Payload
------WebKitFormBoundaryHwVBiFW8AIuh18Bt
Content-Disposition: form-data; name="name"
861-railsconf2012-using-backbone-js-with-rails-patterns-from-the-wild-large.mp4.mpg
------WebKitFormBoundaryHwVBiFW8AIuh18Bt
Content-Disposition: form-data; name="file_entry[folder_id]"
32984
------WebKitFormBoundaryHwVBiFW8AIuh18Bt
Content-Disposition: form-data; name="file"; filename="861-railsconf2012-using-backbone-js-with-rails-patterns-from-the-wild-large.mp4.mpg"
Content-Type: video/mpeg
------WebKitFormBoundaryHwVBiFW8AIuh18Bt--
その後、応答はありません。インスペクターは、ステータスと時間の両方を保留中として報告します。この最新のケースでは、転送サイズは0Bですが、900K /秒に達する発信トラフィックをおそらく10〜15秒間監視し、その後通常の状態(1〜2K /秒)に戻ることができるため、データが送信されたことはわかっています。