0

潜在的に少数の Heroku dyno 間で大量の(読み取り: 数千の)静的 HTML ファイルを共有する方法を見つけようとしています。

明らかに、ダイノには個別のファイルシステムがあり(それらが一時的であることは言うまでもありません)、実行可能な解決策はないようです。

これらのページの生成にはかなりのコストがかかる (変更される可能性がある) ため、各 dyno で頻繁に生成する必要はありません。

/public ディレクトリの S3 バケットを検索するように Rails/Heroku を設定する方法はありますか? これを完全に静的に保ち、CDNを介して提供できるようにしたいので、情報をデータベースに入れたくありません。

4

1 に答える 1

0

s3にデータを書き込むという点では、そこにあるawsgemのどれでもうまくいきます。もし私があなただったら、公式のawssdkまたはfogを見ているでしょう。

storagefogを使用すると、次のようなファイルを書き込むことができます(Fog :: Storageオブジェクトを想定)。

storage.directories.new(:key => 'bucket_name').files.create(:key => 'filename', :body => data)

データは、文字列またはファイルなどのioオブジェクトにすることができます。

あなたは、リクエストを送信したコントローラーにリクエストを送信するルートを持つことができます

storage.directories.new(:key => 'bucket_name').files.head(file_name)

ファイルが存在するかどうかを確認します。必要に応じて、ファイルが存在するという事実をキャッシュして、毎回s3を呼び出す必要がないようにすることができます。

于 2012-12-13T18:53:21.987 に答える