2011-12-19 4 views
0

私は、s3に保存されているファイルのダウンロードリンクを提供しなければならないプロジェクトに取り組んでいます。最初に試しましたが、キャリア波+フォグ(s3)。ユーザーにファイルをダウンロードさせる

link_to "Download", @medium.file.url 

しかし、これはブラウザで直接ファイルを開きます。 mp4ファイルをダウンロードしようとしたときに、chromeが自動的に再生を開始しました。私はそれが起こることを望んでいません。だから私は私の地元では、このタスクのために

def download 
    @medium = Medium.find(params[:id]) 
    send_file @medium.file.url 
end 

をsend_fileを使用しています、私は、ファイルに保存を設定していると私は完全に正常に動作され、これをテストしてきました。しかし、ステージングでは、ファイルはs3から提供され、私はいつもActionController :: MissingFileを得ています。私のアプリは英雄でホストされています。私はsend_fileを使うのが良い選択か、これを行う良い方法があるかどうかを知りたい。

config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' 

私がグーグルで見つけたときに、ファイルを送信するためのnginxヘッダー設定をプロダクション用に有効にする必要があります。 config/environments/production.rbに次の行を追加しました。まだ運がありません。私はこれについていくつかの助けが必要です。ありがとう。

答えて

0

これは、S3がファイルを再生したいからです。

ここで私のS3にアクセスすることはできませんが、私はS3コントロールパネルでPDFファイル(私の場合を示していた)のアクションを変更することで問題を解決しました。

これを修正できれば、send_fileを完全に使用しないようにすることができます。

編集:私は現在S3にアクセスできました。プロパティ - >メタデータに移動し、キーを追加します。

Content-Disposition: Attachment 

ファイルは常に表示されずにダウンロードされます。

+0

コンテンツの配置:添付ファイルはどこに追加しますか?私は適切性 - >メタデータを見つけることができません。 – Cyrus

+0

ファイルのプロパティです。私はここにアクセスする必要はありませんが、バケットやフォルダをクリックし、ファイルをクリックしてプロパティを押してください(私が覚えている限り、誰かがこれを確認するかもしれません) –

関連する問題