2012-01-11 4 views
7

herokuでホストされている私のレールアプリケーションを使ってS3に格納されたファイルを送信する必要があります。 S3のファイルのURLへのリダイレクトは、内部のリンクと同じドメインから提供されるサイトマップを送信したいので使用できません。S3からHerokuとRailsでファイルをプロキシする

理想的には、少なくとも私はherokuのtmpディレクトリにファイルをダウンロードして送信することができます。

また、ファイルの正しいコンテンツタイプを送信します。

どうすれば達成できますか?何が最善の方法でしょうか?

それはこのようになりますあなたの助け

+0

「ファイルを送信する」とはどういう意味ですか?あなたは誰にそれを送っていますか?あなたはそれをユーザーにダウンロードさせたり、別のサービスのプロキシとしてあなたのHerokuアプリからダウンロードするようにしていますか? – iwasrobbed

+1

私はHerokuアプリケーションを介してダウンロードするために、別のサービス(S3)のプロキシとして機能したいと考えています。 –

+0

Herokuは30秒のリクエストタイムアウトを持っているため、確実にHerokuサーバーをプロキシとして使用できるかどうかはわかりません。 – iwasrobbed

答えて

3

ためhere

おかげでそこのことをやっているラックアプリがあるが、私はRailsの中でそれを再現するかどうかはわかりません、コードを参照してください。

は、
blob = AWS::S3::S3Object.value(filename, bucketname) 
send_data(blob, 
      { :type => 'image/jpg, 
      :disposition => 'inline' }) 

タイプはimage/jpg、image/gifなどです。

+0

これは可能ですが、できるだけストリーミングを見つけるのが好きです。また、ファイルがS3に保存されていても、それはパブリックURLにありますので、S3ライブラリからファイルを取得する理由があるかどうかはわかりませんが、S3ライブラリを使用してファイルを取得する必要はありませんURLによって? –

+0

まあ、s3のURLにリダイレクトしたくない場合は、レールアプリは画像を直接提供する必要があります。あなたはrender:text => proc {}構造体を使ってストリームすることができるかもしれませんが、キャッシュが関わる(ワニスまたはmemcache)場合は、s3からそれを取り出して送信するのが合理的な解決策です。 – elijah

+0

'render:text => proc {}'を使ってファイルをストリームする方法がわかりません。また、S3のファイルからコンテンツ/タイプを動的に設定したいと思います。あなたはそれについていくつか考えていますか? ご協力いただきありがとうございます。 –

関連する問題