2015-08-30 137 views
0

我已經使用carrierwave爲我的用戶在我的rails應用程序中上傳文件。當用戶上傳多個大小超過400mb(大約)的文件時,會出現超時錯誤。Carrierwave Timeout

注意:我已經在heroku上託管了我的app rails應用程序。

+0

這是因爲臨時文件上傳到Heroku的,然後推到哪裏你存儲它(如亞馬遜)。此外,您使用的是哪個Web服務器會有所不同,如果您正在進行圖像處理,這也會拖延「獲取」,「處理」和「推送」每次上傳所需的時間。儘管我需要更多信息,但要提供解決方案。你在哪裏存儲hte圖像?你使用哪個網絡服務器?你正在處理圖像文件(縮略圖和大小)? etc – trh

+0

我沒有處理任何圖像。我使用CSS以縮略圖形式顯示圖像。我正在使用ftp的bluehost進行文件存儲。 – fhaider

+1

Gotcha。你必須推出你自己的解決方案,但使用js上傳將會讓Herku走出等式,這將是你最好的選擇。這個解決方案是一個很好的起點。 http://stackoverflow.com/a/16341162/1753596 – trh

回答

0

通常不推薦通過Heroku上傳大文件。他們limit the request to 30 seconds,這將不足以400MB的時間。

如果您願意使用S3,Heroku提供了一個潛在的Rails solution

+0

我估計10-20分鐘後會出現超時錯誤。用戶告訴我他可以上傳約100張圖片(每張圖片大小爲5-8 MB)。但是當上傳大約150張圖片時,他會遇到超時錯誤。 – fhaider

0

第一個解決方案是你可以使用refile gem。

原因是 「輕鬆直接上傳,甚至S3」

這種寶石是由喬納斯尼克拉斯,是誰在背後Carrierwave寶石

refile

Blog on reason for refile gem

二解決方案

移動上傳文件到後臺作業