我负责构建ASP.NET MVC文档管理系统。它必须能够执行基本的文档管理任务,如添加,编辑和搜索条目,以及执行版本控制。
无论如何,我将PDF,Office和许多图像格式作为附加到数据库中每个文档条目的文件。我的问题是:在构建存储机制时,专业人员会遵循哪些设计准则?他们是否将文档文件存储在文件系统中?数据库?如何处理文件上传?
我曾经在用户编辑数据时将文件上传到临时位置,并在用户确认创建条目时将其移动到永久存储。这个好吗?有关改进的任何建议吗?
答案 0 :(得分:0)
文件通常应存储在文件系统而不是数据库中。
但是,你必须考虑其他一些事情:
您是否计划为您的系统支持负载平衡,复制等?
如果是这样,您需要支持从某种网络位置保存/加载文件 这可能比你想象的要复杂。
您是否计划保护对文件的访问权限?
如果是这样,您需要确保碰巧知道该网址的人无法阅读这些内容。 例如:通过将文件作为请求的附件返回。
这也可以防止在您的服务器上执行用户提供的文件 - 例如,有人上传.aspx或.exe文件然后访问它。