2012-02-24 11 views
1

質問は非常に簡単です:アップロードされたファイルをクラスタ化されたSpring MVC環境に保存する最良の方法は何ですか?アップロードされたファイルをSpring MVC環境に保存するための最良の方法

例:私がソーシャルネットワークをコーディングしているとしましょう。自分のプロフィール画像をアップロードする必要があります。ユーザは自分のプロフィールに関連付けられた画像を最大1つ持ちます。

解決策は、DBのユーザーテーブルにBLOB列を追加することです。クラスタ化された環境(多くの画像が格納されているフォルダよりもDBの規模を縮小する方が簡単な場合)であると読んでいます。本当ですか?どうすればJPA(HibernateとPostgreSQL)環境でこれを達成できますか?私は@Lob注釈があるのを見ましたが、どのタイプの変数を使用する必要がありますか? byte[]

もう1つの解決策は、それらをハードドライブに保存することです。これらの画像を保存するのに最適なパスは何ですか? webappフォルダにありますか?クラスパスで? Springコンテキスト外の別のフォルダにありますか?

ありがとうございました。

更新:私が言うことを忘れた重要な詳細。このWebサイトの管理ダッシュボード(CMS /バックエンド)はPHP(私が知っている、私が知っている...)でコード化され、フロントエンドはJava Spring(MVC)でコード化されます。データベースはすべてJava部分(JPA)によって管理されます。最終的な選択がどんなものであれ、この要件と互換性がなければなりません。

+0

「[DBに画像を保存する - はい、いいえ?]」(http://stackoverflow.com/questions/3748/storing-images-in-db-yea-or-nay) –

答えて

0

私はむしろDBに格納したいと思います。最適な場所は、静的ファイル(またはCDN)用のサーバーです。

本当に必要な場合は、LOBとして保存することができますが、パフォーマンスのスケーラビリティ上の理由から悪い考えです。

さらに重要なことは、データベースは単純なコンテンツ配信ネットワークよりも高価に見えることです。

関連する問題