2010-09-06 1 views
0

Я собираюсь создать файлы, менеджер ресурсов для пользователя. Мой сайт предоставляет сервисную помощь пользователю, создающему блог, веб-сайт и позволяющий пользователю загружать свои ресурсы. Я создам структуру папок, как показано ниже. Любое предложение?Лучшая практика создания файлового менеджера для пользователя

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

Должен ли я использовать базу данных для индексации этих файлов?

ответ

1

Если бы я сделать что-то вроде этого, во-первых, я хотел бы сделать следующее:

  • ограничить типы файлов несколько Уточняю (изображения, mp3, mp4, возможно, швейцарских франков);
  • нормализовать имена пользователей или ограничить их буквенно-цифровыми, чтобы у меня не было конфликтов имен имен пользователей;
  • нормализовать имена файлов, чтобы my awesome mp3 file (some comment here).mp3 превращался в my-awesome-mp3-file-some-comment-here.mp3;
  • проверить конфликты имен файлов, чтобы пользователь загрузил файл с тем же именем, что и предыдущий, не произойдет перезаписи (повернуть дубликат screenshot.png в screenshot-2.png);
  • определенно переместите обработку подпапок в базу данных, оставив структуру файлов в пользовательских каталогах плоской.

Дальнейшая оптимизация:

  • магазин файл контрольных сумм в базе данных, чтобы избежать хранения дубликатов файлов в файловой системе. Ограничить дублирование проверки на собственные файлы.

Я написал сайт для обмена файлами сообщества, и я думаю, что он показывает. :)

1

Было бы разумно использовать базу данных, так как тогда только файлы, добавленные через ваш интерфейс, будут доступны только для просмотра (предполагая, что вы читаете список файлов из базы данных, а не из фактической файловой системы).

+1

Хорошая точка. Чтение списка из БД также облегчит нагрузку на файловую систему. – janosrusiczki