6

Heroku には、本番層の PostgreSQL データベースを使用する RoR 3.2 サイトがあります。

当サイトのユーザーは、サイズが 0.5 ~ 2MB の画像をアップロードすることがあります。さまざまな理由から、これらの画像を S3 などのファイルとして保存するのではなく、データベースに保存したいと考えています。

私たちのサイトが画像の多いサイト、つまり Facebook のクローンである場合、データベースに画像を保存するのは良いことではありません。

とにかく、そうではないので、ユーザーの画像をデータベースに保存したい理由のいくつかを次に示します。

  • すべてを制御: S3 のダウンタイムとサードパーティの gem によって、画像の処理や画像へのアクセスが中断されることはありません。
  • 簡単な削除: ユーザーがアカウントをキャンセルした場合、Rails モデル (関係の依存関係) を通じて、そのアカウントに関連付けられているすべての画像を簡単に削除できます。
  • ユーザーデータのエクスポートがより簡単に: ユーザーがサイトを離れてデータを持ち出したい場合、S3 からエクスポートするよりも簡単に画像をエクスポートできます。
  • コスト: 重要な議論ではありませんが、既にデータベースに料金を支払っているため、(少額の) 費用がかかる S3 を使用するよりも安くなります。
  • バックアップ: 重要な議論ではありませんが、データベースのバックアップには、サイトに関連するすべてのものが含まれます (もちろん、RoR コードを除く)。

イメージを Heroku PostgreSQL データベースに保存する最も簡単な方法は何ですか? サンプルコードまたはウォークスルーへのリンクは大歓迎です。

ありがとう :)

4

2 に答える 2

9

そのサイズの画像を保存するためにデータベースを使用しないことをお勧めします。

S3は非常に効果的にバックアップでき、非常に強化されています。データ損失の観点からは、Herokuを使用した開発後のデータベース計画よりも効果的に安全です。

この例では、コストの側面も実際にはベストプラクティスではありません。確かに、行制限を強制するだけですが、開発データベース計画に大きな画像(0.5〜2 MB)を格納することは眉をひそめると思います。

最後に、EC2(Herokuがホストされている場所)からS3への転送速度は、Amazonの内部ネットワークにより非常に高速です。

それを知って、そのサイズの画像をデータベースに保存したいというあなたの願望を再考することをお勧めします。長所と短所のより詳細な分析については、この質問を参照してください。

S3とHerokuの使用に関する開発センターの記事もあります。

于 2012-08-26T02:07:24.017 に答える
4

他の人が述べたように、より良いオプションはS3か何かに画像を保存することです。

HerokuPostgreSQLデータベースに画像を保存するための次のリンクをチェックしてください

データベースに画像をアップロードする

于 2012-09-04T21:25:54.347 に答える