Apache Chemistry CMIS session.createDocument vs folder.createDocument

时间:2015-03-11 10:37:55

标签: cmis opencmis apache-chemistry

我希望有人能够给我创建会话createDocument和文件夹createDocument方法之间的区别。

同样在这个上下文中有一个关于我如何使用文档appendContentStream()方法的示例,我很难在线查看示例,我有一个要求,文档大小可以达到300-350MB,我很想知道在Jeff Potts的Nuxeo网络研讨会上推荐了更多关于appendContentStream()的信息,尽管他提到的大小约为1GB。

1 个答案:

答案 0 :(得分:3)

Session.createDocument()创建一个文档并返回文档ID。 Folder.createDocument()创建一个文档并返回一个完整的Document对象。为此,Folder.createDocument()需要再往返一次服务器。如果您只想创建文档而对文档属性,文档权限或文档再现等不感兴趣,请使用Session变体。它更快。

CMIS规范不限制文档大小。某些存储库支持一次性上载几GB的文档。如果此类上载失败,例如,如果存在连接问题,则必须重复完整上载。 appendContentStream()允许以块的形式上传文档。如果上传块失败,则只需重复上传一个块。如果这有意义取决于您的应用程序,存储库和网络。

OpenCMIS TCK中有一个appendContentStream()代码示例(可能不是很好): https://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/crud/SetAndDeleteContentTest.java?view=markup