Ruby on RailsアプリをHerokuにデプロイしましたが、読み取り専用のファイルシステム(http://docs.heroku.com/constraints#read-only-filesystem)があることに気付きました。これは、たとえば、画像をローカルにキャッシュできないことを意味します。「Rio」(Ruby入力/出力)と呼ばれるRuby gemを使用していたので、ファイルを/ public/imagesディレクトリに保存できました。これを可能にする良いホストはありますか?具体的には、RackspaceCloudを見ていました。他の場所に展開する前に、事前に知っておくと本当に役立ちます。
4 に答える
私は「無料のルビーホスティング」をグーグルで検索したところ、たくさんの結果がありました。それらのいくつかを調べることをお勧めします。
更新: Herokuがそのリストの一番上に表示されていることに気づきましたが、他にもたくさんあります。
私は、ファイルシステムへの書き込みを許可されているかどうかを確認するために、それぞれをチェックするほど勤勉ではなかったことを認めます。
「クラウド」サービスの後にスクランブルをかける必要はないと思います。「クラウド」は、(まだ)発生していない問題に対処します。「クラウド」は、アプリケーションを「無限に」スケーラブルにします。大きな攻撃をした場合、サイトはSlashDottedなどになります。
あなたが探しているのは安価から無料のホスティングであり、それは仮想ホスティングを「行う」プロバイダー(それぞれのコストを削減するために多くの人を1つの物理的なボックスに置く)または貧しいオープンソース開発者のための無料ホスティングによって提供されます。
Herokuを使用する場合の解決策の1つは、その場所で画像をホストしないことです。しかし、Amazonでは。
アプリケーションは、画像で必要なことを実行してから、AmazonS3プラットフォームに送信することができます。
次に、画像を表示したい場合は、Amazonでその画像にリンクするだけです。
ペーパークリップを使用すると、S3に画像を非常に簡単に送信できます。
これを行うためにホストを切り替える必要はありません。
Herokuを使用すると、RAILS_ROOT/tmpディレクトリに書き込むことができます。異なるdynoから異なるリクエストが処理される可能性があり、tmp dirが定期的にクリアされるため、リクエスト間で固執することが保証されているわけではありません。
そのため、画像をそのディレクトリにフェッチし、必要な処理を行ってから、S3にアップロードできます(まだ使用していない場合は、Delayed :: Jobをお勧めします)。
herokuについてはよくわかりませんが、Rackspace cloudFilesに関する質問に答えるために、cloudfilesによって公開されるブロックストレージはなく、ファイルをアップロード/取得などするためのAPIのみがあります。
少なくともLinux/Macosxでは、クラウドファイルをファイルシステムとして公開するヒューズラッパーがいくつかあると考えられています。
https://github.com/redbo/cloudfuse/
クラウドファイルに厳密なJungleDiskもありますが、これは完全なインフラストラクチャです。