2

我正在尝试使用回形针和 aws-sdk gem 下载存储在亚马逊 s3 存储桶中的数据。对象可公开访问。

我的控制器中有一个方法,我打算直接下载数据。

def method_where_downloading_happens
  code for finding url from params
  send_file "ModelName.attached_file.url"
end

#Tried both with static and dynamic url.

我收到以下错误

NoMethodError: undefined method `send_file for main:Object

但是,如果我使用:-

send_file open(ModelName.attached_file.url)

然后下载了一个文件,但它的格式是二进制的,即 windows 无法识别 file_type。

当这个人点击链接时,请帮助我如何提供直接下载。

4

1 回答 1

3

你可以试试这个:

#In your environment.rb require 'open-uri'
require 'open-uri'

#As send_data will work in controller, so in your controller
def index
  data = open(params[:file])
  send_data data, :filename => params[:name], ...
end
于 2012-12-11T11:04:50.070 回答