2

環境:

受信ファイルをサイトのアップロード ディレクトリに保存する PHP ファイル アップロード ハンドラを作成しました。アップロード ディレクトリは Web 経由で公開されており、現在、各ファイルは、データベースによって生成された一意の ID で名前が変更された後、そこに直接ダンプされます。ハンドラーは、画像だけでなく、JS と PHP 以外のすべてのファイル タイプを許可します。ファイルの数は最終的には数千になる可能性がありますが、それが実現するには数年かかります。

私の質問:

アップロードされたすべてのファイルをサーバー上の同じディレクトリに置くことは良い考えですか?

たとえば、ワードプレスはそれらを日付にちなんで名付けられたディレクトリに保存することに気付きました。

私が見ることができる唯一の本当の欠点はls、そこに数千のファイルがあると、ディレクトリのリソースが大量に消費される可能性があることです。または、1 つのディレクトリ内のファイル数、または 1 つのディレクトリの合計サイズ (Linux を実行) に制限がありますか?

セキュリティに関する少し予防的なメモ:

アップロード ハンドラーは、ファイルをアップロードする管理者レベルのユーザーにログインしている以外は保護されています。また、PHP または JS ファイルも保存されません (少なくとも、配列type内の属性を使用して確実にテストできる限り)。これらは実行される可能性があります。$_FILESサーバーによって。私が実装する予定のもう 1 つのセーフガードは、.htaccess念のため、特定のファイル タイプへの要求をブロックするファイルです。この側面に関するメモも歓迎しますが、この質問の一部ではありません。

4

2 に答える 2

2

ファイルの整理に関しては、決まった基準はありません。ただし、すべてのファイルを 1 つのディレクトリに配置することはお勧めできません。特にインデックス作成に関しては、最終的にはシステムのパフォーマンスに影響を与え始めます。

WordPress と同じように、年、月、日ごとに整理できます。ファイルタイプ (拡張子) で整理することもできるので、さらに分類するために、PDF ディレクトリ、ZIP ディレクトリなどを作成し、それらに年/月/日のディレクトリを含めることができます。

于 2012-04-26T17:10:31.320 に答える
1

それが私だったら、それを日ごとまたは時間ごとに分割します。あなたは(潜在的に)サイズが不明な何千ものファイルについて話している。最終的には、これを中心にストレージを構築する必要があり、パーツを他のボリュームやアーカイブなどに移動したい場合があります。

また、各ファイルが chmod -x であり、中立的なサフィックスが付けられていることも確認します。

編集:インデックス作成についても@NADHに同意します。フォルダーに何千ものファイルがあると、多くの OS が煩わしくなります。

于 2012-04-26T17:04:30.870 に答える