在heroku设置30秒限制后,大文件上传到亚马逊s3失败

His*_*alv 3 ruby-on-rails heroku amazon-s3 ruby-on-rails-3

我使用以下命令将我上传的文件存储在amazon s3服务中

AWS::S3::S3Object.store(params[:uploadfile].original_filename, open(params[:uploadfile]), 'mybucket', :access => :private, :content_type => params[:uploadfile].content_type)
Run Code Online (Sandbox Code Playgroud)

我可以上传文件高达30Mb而不会出现问题.我在其他帖子中读到,这可能是由于文件被加载到内存中(混乱).我要上传的最大文件是40Mb,如何在没有上传失败的情况下实现这一目标.

我的Chrome浏览器向我返回以下错误

Error 101 (net::ERR_CONNECTION_RESET): The connection was reset.
Run Code Online (Sandbox Code Playgroud)

当我尝试从我的开发机器(localhost)上传时,我可以上传大文件> 80-100Mb,但是它不能从heroku工作,我不明白为什么,因为我将文件直接上传到s3.

奇怪的是我的下载在30秒后失败,这是heroku设置的超时限制,但是我没有收到任何超时错误或从heroku日志上传失败

谢谢您的帮助

His*_*alv 6

经过这个问题的几个月后,我发现一个效果很好的宝石,通过直接上传到亚马逊s3,没有任何复杂的闪光和javascript后缀.我还整合到了carrierwave中.宝石名为Carrierwave_direct

工作没有问题,但是如果你使用rails 3.0.x checkout这个页面的解决方案.

如果你使用的是rails rails 3.1.x,你就可以了.