我们正在使用来自 java (jaxws) 的 Exchange Web 服务。这就是问题所在。要获取附件,请执行 GetAttachment 肥皂调用(足够合乎逻辑:))。这就是问题所在:整个附件在一个base64数据包中返回(无法访问附件大小),该数据包与其他信息一起隐藏在soap响应的深处。结果,整个附件内容被缓冲到内存中。对于潜在的 2GB 附件,这可能会使整个 java 客户端内存不足。
似乎没有办法只从 EWS 获取附件。似乎不支持 MTOM 等。简而言之,EWS 中似乎没有关于流媒体的规定。
解决这种情况的唯一方法似乎是一个非常低级的代理来拦截这些调用,并将内容流式传输到磁盘,用“标记标志”替换它到磁盘上的文件。但似乎没有优雅的方式来做到这一点?
有任何想法吗