CMIS文档的默认网址?

时间:2014-03-17 02:41:31

标签: alfresco apache-chemistry

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

大多数服务器实现中是否有默认的cmis值来获取此类网址?如果不是Alfresco的这个属性的名称是什么?

2 个答案:

答案 0 :(得分: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中,"服务URL"对于CMIS 1.1浏览器绑定是:

http://localhost:8080/alfresco/api/-default-/public/cmis/versions/1.1/browser

以下所有内容均基于规范。因此,如果我想获得JSON,则列出位于" / test"下的文件夹中的对象。我愿意:

http://localhost:8080/alfresco/api/-default-/public/cmis/versions/1.1/browser/root/test

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

http://localhost:8080/alfresco/api/-default-/public/cmis/versions/1.1/browser/root?objectId=f5681ba1-a4da-4183-82be-8f1869d7310d;3.0

返回对象本身,或者:

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

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

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

AtomPub绑定

如果您使用的是AtomPub绑定,则URL结构不是由规范定义的,而是由存储库定义的。因此,当您使用Atom Pub绑定时,没有标准方法可以通过不同CMIS服务器上的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

查看返回的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"/>

所以我可以直接访问此网址来检索内容。

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

答案 1 :(得分:2)

如果你去: Alfresco CMIS

  

user = admin和password = admin

您将能够看到(例如Root Collection)文件列表及其相对可共享URL。 CMIS界面也可以在您当地的Alfresco实例中使用,因此您应该可以在那里进行检查。 希望能帮助到你。