5

ユーザーからアップロードされたファイルの保存に関するベストプラクティスは何ですか?

現在、私はファイルを保存するために次の方法を使用しています。

<web_app_root>/course_material/<term_id>/<course_id>/<file_id>

ご覧のとおり、ファイルはデータベースのキーに従って保存されます。ファイル名をフィルタリングして安全でない文字を安全な文字に変える必要がないので、これはより安全だと思いました。

しかし、私は新しいプロジェクトを開始しており、Webアプリのファイルシステムをデータベースと緊密に結び付けることが悪い考えであるかどうかを知りたいと思いました。より人間が読める形式でファイルを保存する必要がありますか?

<web_app_root>/course_material/<term_name_underscored>/<course_name_underscored>/<file_name_underscored>

もしそうなら、安全のためにファイル名を除外するための最良の方法は何ですか?それとも、私が現在行っている方法がベストプラクティスですか?

4

2 に答える 2

1

私は常に、一意のGUIDベースのファイル名を持つディレクトリにファイルを保存し、GUIDをDB内のファイルにマップしていました。ファイルなどを手動で参照していない限り、これがおそらく最も簡単な解決策です(無効な文字も回避できます)。

もう1つのオプションは、それらをBLOBとしてデータベースに保存することです。私もこれを行いましたが、それは、最新のNASデバイスが処理する必要がある複製されたDRシナリオを埋めることでした。

何らかの理由でアプリの外部でファイルを手動で参照する必要がある場合は、長い名前または短い名前を使用する方が適切です(ただし、ファイルを参照する場合)。

于 2008-12-01T19:15:20.517 に答える
0

その後、web_app_rootから削除することをお勧めします。

私はあなたが最初の例でやっている方法が好きです。

于 2008-12-01T19:27:35.580 に答える