Система управления документами - где хранить файлы?
Я отвечаю за создание системы управления документами ASP.NET MVC. Он должен уметь выполнять основные задачи управления документами, такие как добавление, редактирование и поиск записей, а также выполнять управление версиями.
В любом случае, я нацеливаюсь на PDF, Office и многие форматы изображений в качестве файла, прикрепленного к каждой записи документа в базе данных. Мой вопрос: каким руководствам по проектированию руководствуются профессионалы при создании механизма хранения? Хранят ли они документы в файловой системе? База данных? Как происходит загрузка файла?
Я использовал для загрузки файлов во временную папку, когда пользователь редактировал данные, и перемещал их в постоянное хранилище, когда пользователь подтвердил создание записи. Это хорошо? Есть предложения по улучшению?
1 ответ
Файлы обычно должны храниться в файловой системе, а не в базе данных.
Вам, однако, придется рассмотреть некоторые другие вещи:
Планируете ли вы когда-нибудь поддерживать балансировку нагрузки, репликацию и т. Д. Для своей системы?
Если это так, вам нужно будет поддерживать сохранение / загрузку файлов из какого-либо сетевого расположения.
Это может быть сложнее, чем вы можете себе представить.Планируете ли вы обеспечить доступ к файлам?
Если это так, вам нужно убедиться, что они не могут быть прочитаны кем-то, кто знает URL. Например: вернув файл в качестве вложения к запросу.
Это также предотвращает выполнение пользовательских файлов на вашем сервере - например, кто-то загружает файл.aspx или.exe и затем получает к нему доступ.