使用strem在Jackrabbit存储库中写入大文件

时间:2013-01-22 17:34:51

标签: jackrabbit

我需要在Jackrabbit存储库中编写大文件。为了避免内存问题,我想在小字节数组中从客户端发送数据,而有状态bean会在某种流中将它们写入存储库。

P.S。抱歉英语很差。

1 个答案:

答案 0 :(得分:0)

在JCR 2.0中,您可以通过

创建二进制属性
Node.setProperty(java.lang.String name,Binary value) 

方法,Binary有一个getInputStream()方法,可用于提供内容流。

这意味着如果存储库实现支持流式传输以及正确设置整个链,您应该能够直接从客户端流式传输到存储库。我假设Apache Jackrabbit在这种情况下确实支持流式传输,但您可能需要根据您使用的版本进行检查。

我认为JCR不支持将流附加到现有属性,因此如果您绝对需要跨多个请求从客户端发送数据,则需要在多个客户端请求中保持长期的JCR会话,并且从您从客户端获得的数据中提取Binary的流,以小块为单位。这看起来比直接流式传输更复杂,但也应该有效。