将文件存储在我们的数据库中,而不是将它们存储在文件服务器上.如果我想将自定义权限应用到可以查看文件的情况下



我正在使用具有实体框架作为数据访问层的ASP.NET MVC Core Web应用程序。我的应用程序中有一个文档管理模块,用户可以上传文件,例如" MS Office",PDFS,图像等。仅针对特定用户的注册用户或私人(他们可以从注册用户列表中选择用户(。

现在,我们有两种方法可以在ASP.NET MVC核心中存储和管理文件: -

  1. 将文件存储在我们的主机服务器上的文件夹中
  2. 将文件存储在我们的数据库中。

所以我不确定哪种方法更适合我们?尤其是我们可以选择在每个文件上应用自定义权限..那么,将文件存储在数据库中是否更好?同样将来,我们可能会允许最终用户指定他们是否要加密文件作为第二级的安全性。

第二个问题。如果我将文件存储在数据库中,那么用户可以将文件下载到其本地计算机上吗?并使用单独的URL查看文件?谢谢

tl; dr:afaict,许可问题不应影响您的选择。调查将文件存储在磁盘上还是在数据库中是正确的选择,忽略了权限问题,您将有答案。

无论您存储文件何处,都必须将权限存储在数据库中,并将其执行在ASP.NET应用程序中。现在,要么你

  • 将每个文件存储在数据库中,指示指向权限或
  • 将每个文件的名称存储在数据库中,指针指向权限,指向主机服务器上的文件。

当文件的请求进来时,您的ASP.NET应用程序将查找数据库中的权限并对其进行评估。如果权限检查失败,它将向客户端返回错误。如果权限检查成功,它将从数据库或文件系统中检索文件。因此,这一切都归结为文件系统还是DB是最好的解决方案通常,忽略了权限问题。

有关优点和缺点,请参见在文件夹结构中存储图像。

相关内容

最新更新