我们需要将大文件(可能高达 200 MB)从 Java/J2EE 应用程序上传到 SharePoint。
我们知道有现成的 SharePoint Web 服务允许将文件上传到 SharePoint。然而,我们主要关心的是如果并发用户上传文件会发生什么。例如,在调用 SharePoint 发送该数据之前,我们需要在 Java 服务器(应用程序服务器)上为每个用户读取 200 MB 的文件。即使有5个并发用户,消耗的内存也在1GB左右,而且CPU使用率也可能很高。在这种情况下,有什么建议如何处理服务器内存、文件上传的并发性吗?
我认为一种选择可能是使用 Flash/Flex 等技术,它们之间不需要另一个服务器(Java 应用程序服务器) - 但是,想知道如何在 J2EE 服务器中实现这一点?
http://服务器名称/站点名称/_vti_bin/copy.asmx
Thanks
好吧..这就是我的理解:
- 您正在尝试使用Sharepoint 复制服务
- 此服务要求流在 Soap 信封中进行 base64 编码。
- 由于文件很大,您的 SOAP 请求也会变得很大并且需要更多内存
我能想到两个选择:
我对sharepoint了解不多,如果可以提供要上传的文件的位置而不是发送字节,那么您可以将文件ftp/sftp到sharepoint服务器,然后使用文件的位置调用web服务。
在 Java 中,不要使用现成的 SOAP 消息 API,而是编写自定义 API。当用户上传文件时,将其保存为 Base64 编码文件。然后您的自定义 api 将创建一条肥皂消息并对其进行流式传输,而不是将所有内容加载到内存中。
对于选项 2:尝试是否可以将文件内容作为肥皂附件发送。如果您想将其作为消息的一部分发送,它会变得有点复杂。
试试看。我不确定是否有效。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)