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

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

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

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

1 ответ

Решение

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

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

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

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

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

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

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

Другие вопросы по тегам