ユーザーの画像をWebアプリケーションに保存します
-
27-10-2019 - |
質問
現在、JSP/サーブレットで開発されているWebアプリケーションがあります。
アプリケーションを使用すると、ユーザーが許可されます アップロード 各ユーザーアカウントの画像ファイル。
画像を保存する最良の方法は何ですか?
あなたの答えの前に私が望んでいる次の機能を考慮してください。
私は今MySQLを使用していますが、別のデータベースに移動する可能性がある可能性があります。
画像をフラットファイルとして保存できますが、
admin
オプションがあるためのアカウント 完全なデータベースをバックアップします 後でリロードします。理想的には、バックアップ/リロードも画像で動作する必要があります。 (別の物理マシンからバックアップが行われ、リロードが別のマシンから行われたとしても)BLOB/CLOBを使用することは、問題2を解決するオプションです。
しかし、 私のデータベースが非常に大きくなった場合はどうなりますか?
解決
それらをファイルシステムに保存します。より速く、よりシンプルです。多くの場合、画像にアクセスするときは、使用する前に画像をファイルに保存する必要があります。サードパーティのツールで画像を調べることができます。 RecordIDをファイル名に保存して、画像/レコードの関連付けが壊れないようにすることができます。
他の多くの人々はこの意見を共有しています: http://forums.asp.net/p/1512925/3610536.aspx
他のヒント
あなたの場合、私はあなたが持っていることを強くお勧めします blob
データベースのフィールドをフィールドし、画像を保存します。主に、これはそうです は 彼らのための正しい場所。したがって、データベースから指定されたユーザーの画像を取得するサーブレットを作成します。例えば、 /userimage?name=john
.
あなたの「サイズ/パフォーマンス」の問題について:
保存および交換するために(とりわけ)データベースが作成されました 大量のデータ.
そう、 彼らは最良の選択肢です.他のサイトに保管しても、自由スペースとパフォーマンスを削減します。
もし、あんたが 本当 大規模なデータ(> = 3TB、ではなく3TB)を管理したい場合、ファイルシステムに保存して、dbのファイル名を保存できます。詳細については、をご覧ください この質問.
DBに保存するだけです...ユーザーベースが「非常に大きくなる」場合は、負荷を処理できるボールアウトデータベースサーバー(またはそれらの農場)を購入するために現金のバケツがあります。あなた?