2015-08-30 83 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

二解决方案

移动上传文件到后台作业