使用aws-s3 gem从Amazon S3下载时生产中缺少模板错误

时间:2013-02-28 06:42:38

标签: ruby-on-rails amazon-s3

当用户尝试从我们的网站下载文件时,他们会收到HTTP 500错误。我们正在使用AWS-S3 gem从S3存储桶下载。这是生产日志中的小堆栈跟踪。

Started GET "/public/download/file?f_id=JS24415" for 172.16.0.206 at 2013-02-19 05:08:11     +0000
Processing by Public::DownloadController#file as HTML
Parameters: {"f_id"=>"JS24415", "method"=>:post}
Completed 500 Internal Server Error in 164ms

ActionView::MissingTemplate (Missing template public/download/file, application/file with {:handlers=>[:erb, :builder], :formats=>[:html], :locale=>[:en, :en]}. Searched in:
 * "/home/ubuntu/project_v2.0/app/views"
 * "/home/ubuntu/.rvm/gems/ruby-1.9.2-p290@rails313/gems/devise-1.4.2/app/views"
 * "/home/ubuntu/.rvm/gems/ruby-1.9.2-p290@rails313/gems/twitter-bootstrap-rails- 2.1.1/app/views"
 ):

最重要的是要注意的是,它只是第一次发生,第二次发生,如果用户试图下载它,那么大部分时间它都在工作。

在与Amazon S3存储桶建立连接后,我们使用以下代码段从S3下载到我们的生产服务器。

  open(destination_file_full_path, 'wb') do |file|
    file << open(path).read
  end

然后使用send_file“#{path}”将文件传输到我们的客户端。 但是我们面临的问题是在从S3下载整个文件之前,该操作实际上调用了Send_file。这就是为什么作为响应Rails触发模板错误。

我们如何使用AWS-S3 gem检查下载是否已完成,或者是否有其他可能的方式来获取信息。我们将不胜感激。任何类型的建议或帮助都将受到赞赏。

0 个答案:

没有答案