質問

ユーザーのリソースマネージャー、ファイルを作成します。私のウェブサイトは、ユーザーがブログ、ウェブサイトを作成し、ユーザーがリソースをアップロードできるようにするサービスを提供します。以下のようなフォルダー構造を作成します。なにか提案を?

usercontents
--user1
----folder1
----folder2
--user2
--user3
----my images

データベースを使用してそれらのファイルをインデックス化する必要がありますか?

役に立ちましたか?

解決

私がこのようなことをするなら、まず次のことをします。

  • ファイルタイプを私が指定したいくつかのものに制限します(画像、MP3、MP4、おそらくSWF)。
  • ユーザー名を正規化するか、ユーザー名を英数字に制限して、ユーザー名フォルダーの競合がないようにします。
  • ファイル名を正規化してください my awesome mp3 file (some comment here).mp3 になる my-awesome-mp3-file-some-comment-here.mp3;
  • ファイル名の競合を確認して、ユーザーが以前の名前と同じ名前のファイルをアップロードした場合、上書きは発生しません(複製されます screenshot.png の中へ screenshot-2.png);
  • サブフォルダーの処理をデータベースに間違いなく移動し、ユーザーディレクトリのファイル構造をフラットにします。

さらなる最適化:

  • ファイルチェックサムをデータベースに保存して、ファイルシステムに重複ファイルを保存しないようにします。重複したチェックを所有ファイルに制限します。

私はコミュニティ主導のファイル共有Webサイトを書きましたが、それが示していると思います。 :)

他のヒント

インターフェイスを介して追加されたファイルのみが表示できるため、データベースを使用することは理にかなっています(実際のファイルシステムではなく、データベースからファイルリストを読んでいると仮定します)。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top