如何逐步通过我的Rails服务器从Amazon S3下载大文件

时间:2011-08-02 06:50:39

标签: ruby-on-rails amazon-s3 download

我想从S3读取文件的内容并将其传递给用户。我有大文件,所以我不能等到它保存在我的服务器上,然后使用* x_send_file *将其发送到浏览器,因为它需要很长时间。我想在我的服务器上下载内容时将内容发送到浏览器。

所以这一切都通过我的服务器像某种流下载一样。

1 个答案:

答案 0 :(得分:1)

是的,这是可能的 - 只需使用Rails获取远程文件并将其临时存储在服务器上或直接从缓冲区发送。这个问题当然是您需要先获取文件才能将其提供给用户。请参阅https://www.ruby-forum.com/topic/98626进行讨论,他们的解决方案是这样的:

#environment.rb
require 'open-uri'

#controller
def index
  data = open(params[:file])
  send_data data, :filename => params[:name], ...
end