ruby-on-rails - send_file 错误:ActionController::MissingFile - 无法从 S3 读取文件

标签 ruby-on-rails ruby-on-rails-4 amazon-s3

为 S3 上的 csv 文件生成了 presigned_url。如果我将网址放入浏览器中,它就会打开,没有任何问题。

如果可能的话,我希望用户能够单击链接并将文件下载到他们的计算机上,而无需接触服务器。

以下失败并出现错误:

ActionController::MissingFile at /foo/1/download
Cannot read file FILE_URL

class FooController < ApplicationController

  def download
    @foo = Foo.find_by( id: params[:id] )
    send_file( @foo.url, filename: @foo.filename )
  end

end

此重定向工作正常,文件会显示在浏览器中。

class FooController < ApplicationController

  def download
    @foo = Foo.find_by( id: params[:id] )
    redirect_to @foo.url
  end

end

最佳答案

要从 s3 下载文件,您需要使用 send_data通过send_files

看到这个answer完整示例

关于ruby-on-rails - send_file 错误:ActionController::MissingFile - 无法从 S3 读取文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39239678/

相关文章:

ruby-on-rails - "bundle exec spring"不与 rbenv 一起工作?

ruby-on-rails - Mechanize 访问链接并获取页面标题

mysql - 为什么使用MySQL时时间戳是 "allow null"?

amazon-web-services - S3 存储桶策略使特定的子文件夹公开而其他所有内容都是私有(private)的?

amazon-web-services - 在没有凭据的情况下使用 aws-sdk

ruby-on-rails - 无效的配置选项 `:provider'

jquery - 为什么 jQuery 无法在我的 Rails 5 应用程序中运行?

ruby-on-rails - 关联上的 ActiveRecord .dup

jquery - Rails 4 应用程序有时(不可预测地)使用不同的(错误的)HTTP 方法发出请求

amazon-s3 - Julia 从 s3 csv 文件加载数据框