Лучшая практика в создании файлового менеджера для пользователя

StackOverflow https://stackoverflow.com/questions/3650090

Вопрос

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

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);
  • Определенно переместите обработку подпунктов в базу данных, оставляя структуру файла в каталогах пользователей.

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

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

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

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top