Alfresco 如何使用开放式CMIS将内容从一个露天存储库迁移到另一个露天存储库

Alfresco 如何使用开放式CMIS将内容从一个露天存储库迁移到另一个露天存储库,alfresco,alfresco-share,alfresco-webscripts,opencmis,content-repository,Alfresco,Alfresco Share,Alfresco Webscripts,Opencmis,Content Repository,我想将所有alfresco存储库内容从一个存储库迁移到另一个存储库。但我不想要现有的文件夹结构。 迁移时,我必须根据某些业务需求验证内容,并根据内容类型在新存储库中创建不同的文件夹结构 以前有人这样做过吗。 请帮忙 提前感谢…好的,我给出的解决方案不是最好的,但我认为它会起作用,我们将从一个简单的文档开始,看看它是否起作用(我们将修改答案) 获取文档的输入信息 我认为这是最重要的部分 public InputStream getTheInputStream () { Document n

我想将所有alfresco存储库内容从一个存储库迁移到另一个存储库。但我不想要现有的文件夹结构。 迁移时,我必须根据某些业务需求验证内容,并根据内容类型在新存储库中创建不同的文件夹结构

以前有人这样做过吗。 请帮忙


提前感谢…

好的,我给出的解决方案不是最好的,但我认为它会起作用,我们将从一个简单的文档开始,看看它是否起作用(我们将修改答案)

获取文档的输入信息

我认为这是最重要的部分

public InputStream getTheInputStream () {    
Document newDocument = (Document) getSession(serverURL, userName, password).getObject(path);
ContentStream cs = newDocument.getContentStream(null);
return cs.getStream();
}
将输入从服务器A移动到服务器B

public void transfert()抛出FileNotFoundException、IOException{
会话sessionB=getSession(serverUrlB、usernameB、passwordB);
////////////////////////////获取要使用的文件夹
文件夹根=sessionB.getRootFolder();
////////////////////////////获取要使用的文件夹
File newfile=新文件(文件名);
字符串nom=文件名;
映射属性=新的HashMap();
properties.put(PropertyIds.OBJECT_TYPE_ID,BaseTypeId.CMIS_DOCUMENT.value());
properties.put(PropertyIds.NAME,nom);

列表。

它是否在同一台服务器中?我的意思是,它只是将内容从存储库移动到存储库中other@Yagami不,服务器是不同的我可以给出一个关于它的答案(使用CMIS),但我相信你能找到一个更好的答案你感兴趣吗?!?(这就像下载并重新加载此文件包含的文件夹)@YagamiLight请尽可能提供您的答案,实际上我不想要现有的文件夹结构。我只想要所有内容及其元数据。在我的新存储库中,创建内部文件夹结构有不同的逻辑。因此,我只想将这些内容发送到新存储库的一个特定位置。重点是我可以提供一个解决方案,但你会丢失很多信息,例如,假设你有服务器a和服务器B,你想将文件夹X从a移到B,用我的方法,你会丢失你在服务器a中的实际创建日期,实际上是今天,你明白我的问题吗?!请理解,我们会一步一步地尝试使用file你确切地知道我编辑的问题的pathGuys,请不要对解决方案投反对票。这对我很有帮助..谢谢..不要担心我们会继续聊天(现在是15:34,我将在17:30与你一起工作)我希望找到你。你能提供我下一步可以采取的进一步步骤吗??
public void transfert() throws FileNotFoundException, IOException {
    Session sessionB = getSession(serverUrlB, usernameB, passwordB);

    ////////////////////////////  GET THE FOLDER THAT YOU WILL WORK WITH
    Folder root = sessionB.getRootFolder();
    ////////////////////////////  GET THE FOLDER THAT YOU WILL WORK WITH
    File newfile = new File(fileName);
    String nom = fileName;
    Map<String, Object> properties = new HashMap<>();
    properties.put(PropertyIds.OBJECT_TYPE_ID, BaseTypeId.CMIS_DOCUMENT.value());
    properties.put(PropertyIds.NAME, nom);
    List<Ace> addAces = new LinkedList<>();
    List<Ace> removeAces = new LinkedList<>();
    List<Policy> policies = new LinkedList<>();
    String extension = FilenameUtils.getExtension(nom);
    ContentStream contentStream = new ContentStreamImpl("content." + extension, BigInteger.valueOf(nom).length()),
            new MimetypesFileTypeMap().getContentType(newfile), (theInputStream);
    Document dc = root.createDocument(properties, contentStream, VersioningState.MAJOR, policies, addAces, removeAces, sessionB.getDefaultContext());        

}