1

MySQL を使用して Spring MVC Hibernate アプリケーションを作成しています。ユーザー イメージはどこに保存すればよいWEB-INF/ですか?

4

3 に答える 3

4

確かにWEB-INFの中ではありません。それらをファイル システムに保存したいかもしれませんが、webapp のディレクトリには保存したくないかもしれません。まず第一に、アプリが戦争としてパッケージ化されている場合、それは存在しない可能性が非常に高い. 次に、アプリを再デプロイするとすぐにすべてが失われます。デスクトップ アプリはユーザー データをインストール ディレクトリに保存しませんね。Web アプリケーションでも同じはずです。

画像は通常大きく、検索できないため、ファイル システムに保存し、名前、パス、ハッシュ、および/または MIME タイプのみをデータベースに保存することをお勧めします。ただし、他のアプリケーションによって提供/使用される必要があるかどうか、これらのアプリがデータベースやファイル システムにアクセスできるかどうかなど、アプリケーションによって異なります。決定するのはあなたです。

于 2012-06-30T17:17:32.733 に答える
2

あなたはそれを選択することができます:

  1. データベース- これはレコードに関連付けることができ、孤立することはありません (モデルによって異なります)。バックアップの場合、データベースが増える状況では少し苦痛です。

  2. FileSystem - バックアップ機能。これらは物理ファイルであるため、rsynch プロセスで十分です。もう 1 つの良い点は、DB からの IO を削減できることです。ただし、ファイルと DB に保存されているレコードの間にロジックを接続するのは非常に難しいため (配布されているものがあります)、ファイルが削除されておらず、それを参照しているレコードが残っているかどうかはわかりません。 DB。

filesystem オプションを選択した場合は、アプリケーションのディレクトリ構造の外に置きます (ファイル専用の場所を用意します)。アプリケーション ディレクトリは変更しないでください。再デプロイが完了すると、問題が発生します。ただし、シンボリックリンクを使用できます。

画像では、おそらくいくつかのサムネイルなどを実行する必要がありますが、これは FileSystem オプションを使用すると安価になります。

于 2012-06-30T17:18:38.330 に答える
0

それは、何を達成しようとしているかによって異なります。
これらが静止画像で、固定数のユーザーがいる場合は、WEB-INF/ の下に保存することを検討できます。
ただし、ほとんどの場合、これはあなたの場合ではなく、さまざまな数のユーザーがいて、ユーザーごとにユーザーを保存する必要があります。

考えられる解決策:
A. ユーザーはイメージ名を保存し、ファイル システム内のよく知られたディレクトリに保存/ロードするという慣習があります。
B. イメージをブロブとして DB に保存します。@Lob アノテーションの確認を検討してください

于 2012-06-30T17:11:25.337 に答える