Architecture 处理客户端和服务器之间的文件传输的最佳方法是什么?

Architecture 处理客户端和服务器之间的文件传输的最佳方法是什么?,architecture,client-server,file-transfer,Architecture,Client Server,File Transfer,我正在构建一个类似于归档系统的东西,它将用于对已经扫描的文档进行注释和编目。它是一个客户机/服务器系统,具有多个客户机 主要工作流程如下所示: 客户端将把文件连同注释一起发送到服务器。服务器应将文件保存在其文件系统上,并将注释与文件路径一起保存在SQL server数据库上 当客户机请求某个文件的记录时,服务器应将该文件连同保存的注释一起提供给客户机。此外,还将进行一些搜索/编辑操作 这是我第一次处理这样的事情,我很难设计它!到目前为止,我有以下几种选择: 1-将客户端直接连接到SQL Serv

我正在构建一个类似于归档系统的东西,它将用于对已经扫描的文档进行注释和编目。它是一个客户机/服务器系统,具有多个客户机

主要工作流程如下所示:

客户端将把文件连同注释一起发送到服务器。服务器应将文件保存在其文件系统上,并将注释与文件路径一起保存在SQL server数据库上

当客户机请求某个文件的记录时,服务器应将该文件连同保存的注释一起提供给客户机。此外,还将进行一些搜索/编辑操作

这是我第一次处理这样的事情,我很难设计它!到目前为止,我有以下几种选择:

1-将客户端直接连接到SQL Server以获取数据,并使用套接字直接在客户端和服务器(我指的是实际的服务器机器)之间传输文件

2-使用WCF进行数据和文件传输

3-构建我自己的自定义中间件(服务器应用程序),该中间件将处理客户端和SQL Server之间来回传递的数据,并处理文件传输。老实说,我宁愿避免这个选项,因为我没有太多时间来实现它


对于这样的解决方案,最好的设计是什么?

您所说的是什么样的音量。如果文件和元数据需要紧密关联,您可能需要考虑将文件直接放在SQLServer的BLOB字段中

这有一个缺点,即数据库中的存储成本明显高于文件系统。但它将允许您在构建系统时具有更大的灵活性