4

インターネット上のあらゆる場所で、HerokuPG-SQLデータベースに画像を保存することとAmazonS3に画像を保存することの比較を検索しました。私は現在、設計上の決定を下そうとしています。ただし、ImがWebアプリを作成するのはこれが初めてです。これまでのところ、これは私が決定を下すために知っていることです:

  1. DBに画像を保存すると、アプリのパフォーマンスが低下します
  2. Dbに画像を保存することは、ファイルシステムに比べて費用がかかります
  3. Herokuのファイルシステムにアクセスできません
  4. あなたは非常に安い料金でAmazonS3に画像を保存することができます
  5. Amazon S3に保存された画像は、Herokuのアプリケーションを通過しない場合、保存する前に処理できません。
  6. Amazon S3で画像を取得して保存するには、通話ごとに費用がかかります
  7. ブラウザが画像を含むオブジェクトを取得している場合、ブラウザはオブジェクトごとに2つのリクエストを行います。1つはherokuからのデータ用で、もう1つはS3からの画像用です。ブラウザは単位時間あたり特定の>m.untのリクエストしか作成できないため、これは問題になる可能性があります。
  8. 画像のサイズが小さい場合にDBに画像を保存しても、パフォーマンスはそれほど低下しません。
  9. データベースから画像を削除すると、断片化が発生する可能性があります

これらは私がそのトピックについて知っている事実です。現在のところ、ImはHerokuDBに画像を保存することに傾倒しています。それらは主にサムネイル/小さな画像であり、サイズが250MB未満であるため

これらの事実が間違っているのか、それともこの設計上の決定を行う際に私が行う必要のある他の考慮事項があるのか​​、誰かが私に知らせてくれるのではないかと思っていました。

また、誰かがこのトピックに関するWeb上のいくつかの良い議論を私に教えてくれれば本当にありがたいです。私はこの議論に正確にあったものを見つけることができませんでした。

4

1 に答える 1

6

それらをS3に保存します。パフォーマンスの面では、データベースに保存するよりも先に進んでいます。データベースに保存する場合、リクエストはWebアプリケーションを経由してから、DBリクエストを作成する必要があります(またはすぐにニスを押しますが、いずれの場合も当てはまります)。さらに、多くのdynoがない限り、これは、ユーザーが一度に1つのイメージしか取得しないことを意味します(長時間実行される要求の特別な構成を除いて、シンはシングルスレッドです)。S3(または任意のクラウドストレージソリューション)を使用すると、静的リソースへの別のHTTPリクエストと同じくらい簡単です-アプリはそれについて知る必要さえありません!

于 2012-05-28T01:55:41.673 に答える