alfresco - CMIS 文档的默认 url?

标签 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 支持两种绑定(bind),一种基于 SOAP,另一种基于 Atom 发布协议(protocol)。在 CMIS 1.1 中,添加了一个新的“绑定(bind)”,称为浏览器绑定(bind)。

您问题的答案取决于您使用的绑定(bind)。

浏览器绑定(bind)

使用浏览器绑定(bind),您可以 POST HTML 表单来创建新对象,当您发出 GET 时,您会得到 JSON。

在 CMIS 1.0 中,URL 结构完全依赖于底层存储库。对于 CMIS 1.1 浏览器绑定(bind),URL 结构由规范规定。

例如,在 Alfresco 4.2.x 中,CMIS 1.1 浏览器绑定(bind)的“服务 URL”是:

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

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

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 浏览器绑定(bind)时,您不需要属性来告诉您对象的 URL,您只需要服务 URL 和对象的对象 ID。

AtomPub 绑定(bind)

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

但是,给定内容的“内容 URL”作为内容的 Atom 条目的一部分返回。您会在 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"/>

这样我就可以直接转到这个 URL 来检索内容。

因此,如果您可以获得 Atom 响应,您就可以获取该值并获得您的 URL。但是,请注意,如果最终用户调用此 URL,系统将提示他们输入 Alfresco 凭据而不是基本身份验证。如果这对您不起作用,您将不得不编写一个代理来获取内容并将其流式传输回用户。

关于alfresco - CMIS 文档的默认 url?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22446051/

相关文章:

java - Apache 化学-Java : Random "Unauthorized" exception when uploading documents to SharePoint 2010

alfresco - 在哪里可以找到 Alfresco 日志文件?

java - 将 byte[] 中的内容写入 Alfresco 存储库

java - 在alfresco插件代码和ImageMagick中尝试各种方式将cmyk转换为rgb,但无法完成。请检查我的发现,请给我建议

cmis - 什么是 OpenCMIS 桥接器?

php - 通过 Chemistry in PHP 从 Alfresco 下载文件

java - 无法从 servlet 加载配置

java - 如何通过 CMIS 检索 documentum 7.1 中的 ACL

javascript - 露天 : External Webservice calling gettting error not able to get result?

android - Maven 构建期间的 Alfresco Android SDK 错误