Система управления документами - где хранить файлы? - PullRequest
1 голос
/ 16 января 2011

Я отвечаю за создание системы управления документами ASP.NET MVC. Он должен уметь выполнять основные задачи управления документами, такие как добавление, редактирование и поиск записей, а также выполнять управление версиями.

В любом случае, я нацеливаюсь на PDF, Office и многие форматы изображений в качестве файла, прикрепленного к каждой записи документа в базе данных. Мой вопрос: каким руководствам по проектированию руководствуются профессионалы при создании механизма хранения? Хранят ли они файлы документов в файловой системе? База данных? Как происходит загрузка файла?

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

1 Ответ

0 голосов
/ 16 января 2011

Файлы обычно должны храниться в файловой системе, а не в базе данных.

Вам, однако, придется подумать о некоторых других вещах:

  • Планируете ли вы когда-нибудь поддерживать балансировку нагрузки, репликацию и т. Д. Для своей системы?

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

  • Планируете ли вы защитить доступ к файлам?

    Если это так, вам нужно убедиться, что они не могут быть прочитаны кем-то, кто знает URL. например: путем возврата файла в качестве вложения к запросу.

    Это также предотвращает выполнение пользовательских файлов на вашем сервере - например, кто-то загружает файл .aspx или .exe и затем получает к нему доступ.

...