Mr_*_*zle 4 ruby-on-rails amazon-s3 filestream ruby-on-rails-3
好吧,我的问题是我正在使用send_data我的Rails 3应用程序向用户发送一个来自AWS S3服务的文件
Base.establish_connection!( :access_key_id => 'my_key', :secret_access_key => 'my_super_secret_key')
s3File = S3Object.find dir+filename, "my_unique_bucket"
send_data(open(s3File.url).read,:filename=>filename, :disposition => 'attachment')
Run Code Online (Sandbox Code Playgroud)
但似乎浏览器正在缓冲文件,并且在缓冲之前将文件发送到下载,不需要时间下载,但buffering当时它只需要文件大小....但我需要的是用户查看正常下载过程,他们只会在浏览器选项卡上知道加载器发生了什么:

他们宁愿看到一个下载过程,我想要弄清楚那里发生了什么
我有什么方法可以做到这一点send_data?
这不是浏览器的缓冲/延迟,而是你的Ruby服务器代码.
您将从S3下载整个文件,然后将其作为附件发送回用户.
使用重定向直接从S3向您的用户提供此内容可能更好.以下是构建临时访问URL的链接,该URL允许在短时间内使用给定令牌进行下载:
http://docs.amazonwebservices.com/AmazonS3/latest/dev/S3_QSAuth.html
Base.establish_connection!( :access_key_id => 'my_key', :secret_access_key => 'my_super_secret_key')
s3File = S3Object.find dir+filename, "my_unique_bucket"
redirect_to s3File.url(:expires_in => 30)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1803 次 |
| 最近记录: |