Ran*_*all 3 alfresco apache-chemistry
Google和Box等云存储服务为所有文件提供了可共享的URL端点.像http://drive.google.com/my-object-id这样的东西.
在大多数服务器实现中是否有默认的cmis值来获取这种URL?如果不是Alfresco的这个房产的名称是什么?
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凭据.如果这对您不起作用,您将必须编写代理来获取内容并将其流回给用户.