2

我在 example.com 上有一个 rails 应用程序。我正在为任何类型的文件(视频、图像……)使用云存储提供商。不,我想让它们可供下载而不暴露实际存储位置的 url。所以我在想一种代理。一个简单的控制器,看起来像这样:

data = open(params[:file])
filename = "#{RAILS_ROOT}/tmp/my_temp_file"

File.open(filename, 'r+') do |f|
  f.write data.read
end

send_file filename, ...options...

(代码取自链接)。

重点是我必须先下载文件。所以我想知道是否可以在不先从云存储下载的情况下立即流式传输文件。

最好的菲利普

4

1 回答 1

1

不久前,我正在研究这个确切的问题,并得出结论,如果不必将文件下载到您的服务器,然后按照您所说的将其传递给客户端,这是不可能的。我建议生成一个签名的、过期的下载链接,每当用户点击您页面上的下载链接时,您就可以将其插入隐藏的 iframe 中。通过这种方式,他们将获得从您的页面下载的体验,而不会使文件不必要地往返您的服务器。

于 2013-01-17T23:12:35.483 回答