使用UUID导出文件夹Alfresco

时间:2016-09-28 10:05:21

标签: alfresco alfresco-share alfresco-webscripts

我想导出几个文件,绝对保存他们的UUID,将它们导入另一个GED Alfresco。

我使用Alfresco 4.2.f,我该怎么做?

2 个答案:

答案 0 :(得分:1)

您必须使用Alfresco Explorer应用程序中的导出工具创建自己的Alfresco内容包(ACP)。通过这种方式,您将在acp(zip)文件中导出所有内容,同时保留UUID,属性,关联,权限和角色。

然后,为了在Alfresco目标实例中导入内容,保留UUID,您必须在扩展类路径中或扩展Alfresco Importer Module组件的AMP Spring上下文中定义一个新的Spring bean,如下面的代码片段所示:

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
<beans>
    <bean id="yourModule.bootstrapSpaces" class="org.alfresco.repo.module.ImporterModuleComponent" parent="module.baseComponent">
      <property name="moduleId" value="yourModule" />
      <property name="name" value="yourModule.bootstrapSpaces" />
      <property name="description" value="Initial data requirements" />
      <property name="sinceVersion" value="1.0" />
      <property name="appliesFromVersion" value="1.0" />

        <!-- Data properties -->
        <property name="importer" ref="spacesBootstrap" />
        <property name="bootstrapViews">
            <list>
                <props>
                    **<prop key="uuidBinding">REPLACE_EXISTING</prop>**
                    <prop key="path">/${spaces.company_home.childname}</prop>
                    <prop key="location">alfresco/extension/bootstrap/yourExportedContents.acp</prop>
                </props>
            </list>
        </property>
    </bean>
</beans>

魔术是由REPLACE_EXISTING值完成的,该值告诉Alfresco将UUID替换为您从预览Alfresco实例导出的UUID。

对于每个ACP文件,您必须在代码段中定义新的props XML元素。

另请注意,您导出的ACP可以安装在Alfresco安装之外,您可以在安装的共享类加载器中复制ACP文件,例如考虑Tomcat可以放置ACP文件的位置如下:

tomcat/shared/classes/alfresco/extension/bootstrap

希望这会有所帮助:)

答案 1 :(得分:0)

除了Piergiorgio Lucidi的回答外,这是在Alfresco 4.2.f中测试的另一种逐步方法:

  1. 使用“节点”资源管理器查找要将文件导入到的节点。您将获得如下路径:/{http://www.alfresco.org/model/application/1.0}company_home/{http://www.alfresco.org/model/site/1.0}sites/{http://www.alfresco.org/model/content/1.0}myportal/{http://www.alfresco.org/model/content/1.0}documentLibrary/{http://www.alfresco.org/model/content/1.0}production

  2. 转换路径,并根据此table用其前缀替换名称空间。路径应如下所示:/app:company_home/st:sites/cm:myportal/cm:documentLibrary/cm:production

  3. 编辑文件tomcat/webapps/alfresco/WEB-INF/classes/alfresco/bootstrap-context.xml并将其添加到结束</beans>之前的底部。将路径替换为步骤2中的url和实际acp文件的路径:

    <bean id="yourModule.bootstrapSpaces" class="org.alfresco.repo.module.ImporterModuleComponent" parent="module.baseComponent">
      <property name="moduleId" value="org.alfresco.integrations.google.docs" />
      <property name="name" value="yourModule.bootstrapSpaces" />
      <property name="description" value="Initial data requirements" />
      <property name="sinceVersion" value="1.0" />
      <property name="appliesFromVersion" value="1.0" />
    
      <property name="importer" ref="spacesBootstrap" />
      <property name="bootstrapViews">
          <list>
              <props>
                  <prop key="uuidBinding">REPLACE_EXISTING</prop>
                  <prop key="path">/app:company_home/st:sites/cm:myportal/cm:documentLibrary/cm:production</prop>
                  <prop key="location">/home/ec2-user/alfresco-top-export-20201209.acp</prop>
              </props>
          </list>
      </property>
    </bean>
    
  4. 重新启动户外等待导入

  5. 再次删除bean定义

它通过扩展现有模块而起作用,因此您无需自己定义模块。