2

ペーパークリップとaws-sdkgemを使用して、Amazons3バケットに保存されているデータをダウンロードしようとしています。オブジェクトは一般公開されています。

コントローラーに、データを直接ダウンロードするメソッドがあります。

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 に答える