Web services 从Web服务向客户端发送多个文件的最有效解决方案?

Web services 从Web服务向客户端发送多个文件的最有效解决方案?,web-services,file,io,streaming,Web Services,File,Io,Streaming,想知道社区对将多个文件从一个请求传递回Web服务的最有效(在I/O和速度方面)解决方案的看法。客户端不是web浏览器 到目前为止,我看到的选项包括: 创建zip存档并将其流式传输回客户端 base64编码文件需要客户端解码的返回字符串数组 使用Mime multipart/related并为迭代中的每个文件发送Mime头,也可能流回到客户端 也许还有其他我没有考虑过的 澄清: 让我们假设文件的大小可能在10兆字节左右,内存大约为4G,但可能还有其他进程和/或同时请求 >我想你需要考虑绑定()

想知道社区对将多个文件从一个请求传递回Web服务的最有效(在I/O和速度方面)解决方案的看法。客户端不是web浏览器

到目前为止,我看到的选项包括:

  • 创建zip存档并将其流式传输回客户端
  • base64编码文件需要客户端解码的返回字符串数组
  • 使用Mime multipart/related并为迭代中的每个文件发送Mime头,也可能流回到客户端
也许还有其他我没有考虑过的

澄清:


让我们假设文件的大小可能在10兆字节左右,内存大约为4G,但可能还有其他进程和/或同时请求

>我想你需要考虑绑定()和传输协议(SOAP,REST)。平均文件有多大?

我想你需要考虑绑定()和传输协议(SOAP,REST)。平均文件有多大?

我必须假设文件可能会变得非常大。请求API当前是JSON-RPC,但它可以是任何内容。我通常避免使用SOAP,因为它为客户端增加了额外的库要求,等等。@FilmJ-如果您不使用流媒体,您的客户端将需要在内存中缓冲消息-可能会导致系统运行缓慢。解决这个问题的唯一方法是确定系统的更多指标(平均文件大小、客户端内存等)。我还建议使用JSON+REST来最小化通信,但这不会成为您在此过程中的瓶颈。为了澄清这一点,您建议我以MIME边界和标题分隔多个文件?@FilmJ-您列出的选项,这就是我要走的路线。@SilverNinja除了我错过的那些选择,还有别的选择吗?使用“流媒体”是三分之二。同时,我将开始用MIME做测试用例。我必须假设文件可能会变得非常大。请求API当前是JSON-RPC,但它可以是任何内容。我通常避免使用SOAP,因为它为客户端增加了额外的库要求,等等。@FilmJ-如果您不使用流媒体,您的客户端将需要在内存中缓冲消息-可能会导致系统运行缓慢。解决这个问题的唯一方法是确定系统的更多指标(平均文件大小、客户端内存等)。我还建议使用JSON+REST来最小化通信,但这不会成为您在此过程中的瓶颈。为了澄清这一点,您建议我以MIME边界和标题分隔多个文件?@FilmJ-您列出的选项,这就是我要走的路线。@SilverNinja除了我错过的那些选择,还有别的选择吗?使用“流媒体”是三分之二。同时,我将开始用MIME做测试用例。