【发布时间】:2015-01-21 18:56:19
【问题描述】:
alfresco 文档节点是引用 ID、UID、UUID 还是 GUID?
我没有成功找到任何关于此的文档,但确实看到 AlfrescoOne 在其 Java 类之一中有一个 GUID 生成器。
【问题讨论】:
标签: alfresco guid uuid alfresco-share uid
alfresco 文档节点是引用 ID、UID、UUID 还是 GUID?
我没有成功找到任何关于此的文档,但确实看到 AlfrescoOne 在其 Java 类之一中有一个 GUID 生成器。
【问题讨论】:
标签: alfresco guid uuid alfresco-share uid
是的,它们是独一无二的。通常它们看起来像这个工作区://SpacesStore/d0ab65f5-599c-439e-a87c-35eef61a0515
【讨论】:
Alfresco NodeRefs 必须对于他们所居住的租户来说是唯一的。默认情况下,它们基于一种 GUID,但并非必须如此。如果你启动你的节点浏览器,你会看到有一些众所周知的节点引用,例如
workspace://SpacesStore/rendering_actions_space - /app:company_home/app:dictionary/app:rendering_actionsworkspace://SpacesStore/publishing_root_space - /app:company_home/app:dictionary/app:publishing_root虽然大部分都是workspace://SpacesStore/88829143-8494-4cfe-99d6-6c7949aaa279
因为那些众所周知的 noderefs 将出现在系统中的每个租户中,因此您知道 noderefs 只需要在租户内是唯一的,而在给定的安装中不一定是全局唯一的
【讨论】:
GUID.generate() 用于创建的所有新节点。在以编程方式创建 DataList 条目时,我不得不处理这个问题,其中每一行都必须有一个唯一的标识符。
Alfresco,至少我的版本 (4.2) 使用的是 GUID.java 类,它在内部使用 org.safehaus.uuid.uuidgenerator
尽管按照规范,由于相同的 GUID 而发生冲突的可能性实际上非常低,您应该查看 safehaus 的该类,以收集有关该 ID 的唯一性的信息。
[更新]
然而,只是为了强制执行其他人所说的,即 NodeRef 对于租户来说必须是唯一的,值得一提的是,无论 GUID 生成器的准确性如何,在某些情况下可以找到相同的节点 guid在多个安装中。
例如,当开发一个使用boostrap data 将文件预加载到露天的AMP 时。
在这种情况下,至少在 Alfresco 4.2f 中,如果您想使用选项 REPLACE_EXISTING 或 UPDATE_EXISTING,那么您必须手动指定要在 AMP 上上传或替换的所有文件的 guid。然后将该 GUID 分配给创建的新节点。
因此,如果您在不同的 Alfresco 安装中上传您的 AMP,那么您将在每个安装上拥有相同的 GUID。
【讨论】:
workspace://SpacesStore/rendering_actions_space