Хранение файлов внутри нашей БД по сравнению с хранением их на файловом сервере. Если я хочу применить пользовательские разрешения, к которым можно просматривать файлы - PullRequest
0 голосов
/ 15 мая 2019

Я работаю над основным веб-приложением asp.net mvc, в котором в качестве слоя доступа к данным используется платформа Entity.и у меня есть модуль управления документами внутри нашего приложения, где пользователи могут загружать файлы, такие как «MS Office», PDF-файлы, изображения и т. д. >> затем они могут устанавливать разрешения для каждого файла >> либо общедоступные, так что они доступны для просмотра всемтолько зарегистрированные пользователи или только для определенных пользователей (где они могут выбирать пользователей из списка зарегистрированных пользователей).

теперь у нас есть 2 способа хранения и управления файлами внутри нашего ядра asp.net mvc: -

  1. хранение файлов в папке на нашем хост-сервере
  2. хранение файлов в нашей базе данных.

, поэтому я не уверен, какой подход будет более подходящимдля нас?тем более, что у нас есть опция применять пользовательские разрешения для каждого файла .. так что лучше хранить файлы в базе данных?Также в будущем мы можем позволить конечным пользователям указать, хотят ли они шифровать файлы в качестве второго уровня безопасности.

второй вопрос.если я храню файлы в базе данных, то может ли пользователь загрузить файлы на свои локальные компьютеры?и просматривать файлы, используя отдельные URL-адреса?Спасибо

1 Ответ

1 голос
/ 15 мая 2019

TL; DR: AFAICT, проблема с разрешением не должна влиять на ваш выбор.Выясните, правильно ли было бы хранить файлы на диске или в базе данных, игнорируя проблему с разрешениями, и вы получите ответ.

Независимо от того, где вы храните файлы, вам придется хранитьразрешения в базе данных и применять их в приложении ASP.NET.Теперь вы либо

  • сохраняете каждый файл в базе данных с указателем на разрешения, либо
  • сохраняете имя каждого файла в базе данных с указателем наразрешения и указатель, указывающий на файл на хост-сервере.

Когда поступит запрос на файл, ваше приложение ASP.NET выполнит поиск разрешений в базе данных и оценит их.Если проверка разрешения не удалась, он вернет ошибку клиенту.Если проверка разрешения прошла успешно, он извлечет файл либо из базы данных, либо из файловой системы.Таким образом, все сводится к тому, является ли файловая система или БД лучшим решением в целом , игнорируя проблему с разрешениями.

См. Хранение изображений в БД и в структуре папок за и против.

...