簡體   English   中英

使用Carrierwave將大文件上傳到Rails應用程序時出現內存分配錯誤

[英]Memory Allocation Error when uploading large file to Rails app with Carrierwave

我看過以下問題,但不能為我的問題提供令人滿意的解決方案:

讓我的Rails應用程序接受大文件

我正在使用Rails 4.2,Ruby 2.1和Mongodb 3.2,Carrierwave 0.10.0和Mongoid 5.0.2。 我能夠將相對較小的文件(<20mb)成功上傳到數據庫。 但是,當我嘗試上傳大文件(大約500mb)時,在控制台中出現以下錯誤:

在2016-01-20 14:24:12 +0200處以:: 1開始獲取:: 1的GET“ / invoice_collections / new”由InvoiceCollectionsController#new作為HTML處理在布局/應用程序中渲染了invoice_collections / new.html.erb(28.0ms)已完成200 OK in 129ms(Views:128.0ms | ActiveRecord:0.0ms)[2016-01-20 14:25:30] 錯誤NoMemoryError:無法分配內存 C:/RailsInstaller/Ruby2.1.0/lib/ruby/2.1.0/ webrick / httprequest.rb:254:在'block> inbody'中C:/RailsInstaller/Ruby2.1.0/lib/ruby/2.1.0/webrick/httprequest.rb:479:在'call'中C:/ RailsInstaller / Ruby2 .1.0 / lib / ruby​​ / 2.1.0 / webrick / httprequest.rb:479:in>`read_body'C:/RailsInstaller/Ruby2.1.0/lib/ruby/2.1.0/webrick/httprequest.rb:255:in 'body'C:/RailsInstaller/Ruby2.1.0/lib/ruby/gems/2.1.0/gems/rack-1.6.4/lib/rack/handler/webrick.rb:62:在'service'C:/ RailsInstaller /Ruby2.1.0/lib/ruby/2.1.0/webrick/httpserver.rb:138:在>'service'C:/RailsInstaller/Ruby2.1.0/lib/ruby/2.1.0/webrick/httpserver.rb:94 :在'run'C:/RailsInstaller/Ruby2.1.0/lib/ruby/2.1.0/webrick/se中 rver.rb:295:in'在> start_thread中阻止'

當我在控制台中看到此內容時,我看到的是純白色頁面,而不是我應該看到的視圖。

我的Ruby和Rails安裝所在的位置是RailsInstaller。 它在這里下載:

http://railsinstaller.org/en

在嘗試執行此操作時,我嘗試將PC上的內存使用降至最低,但這沒有幫助。 我嘗試重新安裝滑軌和紅寶石,但未成功。 我嘗試在Cloud 9 ide上而不是在我的機器上運行該應用程序,並且該應用程序正常工作,並且我的機器比cloud 9 ide擁有更多的內存。 但是,我需要使用計算機進行測試的原因是,我必須對上傳的文件執行一些相當繁重的操作。

是什么導致我的計算機上出現此錯誤? 我該如何解決?

更新:我試圖在具有32 GB RAM的PC上運行該應用程序。 仍然給出完全相同的錯誤,因此我認為這與PC的內存無關。

因此看來問題出在webrick。 我不確定到底是什么問題,但是我使用Thin而不是webrick使其正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM