CMIS 1.1规范说:
2.1.5.3路径 文件夹层次结构可以用规范的符号(如路径)表示。..。 pathSegment令牌不能包含“/”字符。 存储库是如何为pathSegment选择值的fic。存储库可以选择使用cmis:名称或内容流、pathSegment令牌的fi连名。
但是,我能够在Documentum 7.1.0000.0146服务器中创建以下文档:

如您所见,cmis:name和cmis:contentStreamFilename都包含一个斜杠。实际上,cmis:contentStreamFilename似乎变成了无论cmis:name是什么(加上扩展)。
这是Documentum的CMIS实现中的一个错误吗?
当此服务器使用getObjectByPath路径元素正确地回复“正常”cmis:name请求时,是否有任何方法在上面的屏幕截图中对对象使用getObjectByPath?或者getObjectByPath对这样的服务器是不可用的?
发布于 2017-10-01 04:45:30
我确实认为这是Documentum的CMIS实现中的一个bug (也就是说,允许斜杠成为cmis:name和cmis:contentStreamFileName的一部分是一个bug )。我从Apache项目中找到了这个错误报告,在该项目中,似乎修复了一个类似的bug。关于这一问题的一些评论说明:
给定对象的下列路径: /a/b/c/d.pdf 路径段标记是"a“、"b”、"c“和"d.pdf”。 getObjectByPath方法确实假定您将传递一个由路径段标记组成的路径,该路径由正斜杠分隔。这就是CMIS按照规范定义“路径”的方式。
...and...
存储库可以使用cmis:name作为pathSegment令牌,但是,如果存储库不使用cmis:name作为pathSegment令牌,这种情况显然会失败。 有一些可能的场景不将cmis:name用作pathSegment令牌: 1)使用的是内容流文件名,而不是cmis:名称,正如规范中所描述的那样。 2)存储库支持在文件夹中使用相同的cmis:name创建文档,这意味着不可避免地使用其他值而不是cmis:name作为其pathSegment,因为根据规范“每个项目的pathSegment令牌必须唯一标识文件夹中的项”。
我不太了解Documentum,所以这个bug在抓取对象时是否会显现,就像抛硬币一样。您考虑过使用CMIS工作台来运行一个简单的CMIS查询来使用其中一个属性找到它吗?如果它成功了,我会很有信心(虽然不是100%)它将与getObjectByPath一起工作。
发布于 2017-09-30 07:06:44
我不认为在Documentum存储库中对对象名称有太多限制。如果您想应用业务规则来确保没有用'/‘字符创建对象名称,那么请查看BOF框架。
https://stackoverflow.com/questions/46484062
复制相似问题