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