CMIS文档的默认网址?

Ran*_*all 3 alfresco apache-chemistry

Google和Box等云存储服务为所有文件提供了可共享的URL端点.像http://drive.google.com/my-object-id这样的东西.

在大多数服务器实现中是否有默认的cmis值来获取这种URL?如果不是Alfresco的这个房产的名称是什么?

Jef*_*tts 6

CMIS是企业内容管理(ECM)存储库的行业标准.Alfresco符合CMIS 1.0和CMIS 1.1.CMIS 1.0支持两种绑定,一种在SOAP上,另一种在Atom发布协议上.在CMIS 1.1中添加了一个称为浏览器绑定的新"绑定".

您的问题的答案取决于您使用的绑定.

浏览器绑定

使用浏览器绑定,您可以POST HTML表单来创建新对象,当您发出GET时,您将获得JSON.

在CMIS 1.0中,URL结构完全依赖于底层存储库.使用CMIS 1.1浏览器绑定,URL结构由规范决定.

例如,在Alfresco 4.2.x中,CMIS 1.1浏览器绑定的"服务URL"是:

http://localhost:8080/alfresco/api/-default-/public/cmis/versions/1.1/browser
Run Code Online (Sandbox Code Playgroud)

以下所有内容均基于规范.因此,如果我想要获取JSON,列出位于"/ test"下的文件夹中的对象,我会这样做:

http://localhost:8080/alfresco/api/-default-/public/cmis/versions/1.1/browser/root/test
Run Code Online (Sandbox Code Playgroud)

而且,对于你原来的问题,如果我想要一个对象并且我知道它的对象ID我可以使用:

http://localhost:8080/alfresco/api/-default-/public/cmis/versions/1.1/browser/root?objectId=f5681ba1-a4da-4183-82be-8f1869d7310d;3.0
Run Code Online (Sandbox Code Playgroud)

返回对象本身,或者:

http://localhost:8080/alfresco/api/-default-/public/cmis/versions/1.1/browser/root?objectId=f5681ba1-a4da-4183-82be-8f1869d7310d;3.0&cmisselector=object
Run Code Online (Sandbox Code Playgroud)

如果需要有关该对象的元数据.

因此,当您使用CMIS浏览器绑定时,您不需要属性来告诉您对象的URL,您只需要服务URL和对象的对象ID.

AtomPub绑定

如果您使用的是AtomPub绑定,则URL结构不是由规范定义的,而是由存储库定义的.因此,当您使用Atom Pub绑定时,没有标准方法可以通过不同CMIS服务器上的URL检索内容.

但是,给定内容的"内容URL"作为一段内容的Atom Entry的一部分返回.你可以在atom:content元素的src属性中找到它.

例如,使用curl或类似的运行Alfresco 4.2.f,我可以使用其ID获取一段内容的原子条目,如下所示:

http://localhost:8080/alfresco/api/-default-/public/cmis/versions/1.0/atom/entry?id=f5681ba1-a4da-4183-82be-8f1869d7310d%3B3.0
Run Code Online (Sandbox Code Playgroud)

看看回来的XML,我看到了这个:

<atom:content src="http://localhost:8080/alfresco/api/-default-/public/cmis/versions/1.0/atom/content/test.txt?id=f5681ba1-a4da-4183-82be-8f1869d7310d%3B3.0" type="text/plain"/>
Run Code Online (Sandbox Code Playgroud)

所以我可以直接转到此URL来检索内容.

因此,如果您可以获取Atom响应,则可以获取此值,并且您将拥有自己的URL.但是,请注意,如果最终用户调用此URL,系统将提示他们通过基本身份验证获取Alfresco凭据.如果这对您不起作用,您将必须编写代理来获取内容并将其流回给用户.