像 Google 和 Box 这样的云存储服务对所有文件都有一个可共享的 url 端点。类似http://drive.google.com/my-object-id。
大多数服务器实现是否有默认的 cmis 值来获取这种 url?如果不是,这个 Alfresco 的属性的名称是什么?
像 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 Publishing Protocol 上。在 CMIS 1.1 中添加了一个新的“绑定”,称为浏览器绑定。
您的问题的答案取决于您使用的绑定。
浏览器绑定
使用浏览器绑定,您发布 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
以下所有内容均基于规范。因此,如果我想返回列出位于“/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 浏览器绑定时,您不需要一个属性来告诉您对象的 URL,您只需要服务 URL 和对象的对象 ID。
AtomPub 绑定
如果您使用的是 AtomPub 绑定,则 URL 结构不是由规范定义的,而是由存储库定义的。因此,当您使用 Atom Pub 绑定时,没有标准方法可以通过不同 CMIS 服务器上的 URL 检索内容。
但是,给定内容的“内容 URL”作为内容的 Atom 条目的一部分返回。您可以在 atom:content 元素的 src 属性中找到它。
例如,使用 curl 或针对 Alfresco 4.2.f 运行的类似工具,我可以使用其 ID 获取一段内容的 atom 条目,如下所示:
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 with
用户=管理员和密码=管理员
您将能够看到(例如根集合)文件列表及其相对可共享的 URL。CMIS 界面在您本地的 Alfresco 实例中也可用,因此您应该可以在那里检查它。希望能帮助到你。