如何通过java恢复alfresco共享中删除的数据?

时间:2016-08-03 10:30:08

标签: spring alfresco alfresco-share

我是露天社区的新手,我正在将露天社区用于文件管理系统。

现在我的问题是我删除了一个文档,如下所示,现在我想将这些数据恢复到删除之前存在的文件夹中

Document document = (Document) session.getObjectByPath(filePath);
document.delete();

请任何人帮助我......

3 个答案:

答案 0 :(得分:1)

您可以使用:

nodeArchiveService.restoreArchivedNode(NodeRef archivedNodeRef)

要获取archivedNodeRef,您可以在alfresco数据库中搜索它(坏),使用archive:// SpacesStore

下的其中一个属性找到它
new NodeRef(archiveRoot.getStoreRef(),(String)node.get("UUID"))

http://dev.alfresco.com/resource/docs/java/org/alfresco/repo/node/archive/NodeArchiveService.html

如果您启用并运行了trashcanCleaner,则默认情况下您的垃圾箱会被保护14d,此后节点将被删除。

从归档存储中获取节点的SQL查询:

String sql = "SELECT n.id, n.UUID "
            + "FROM alf_node n, alf_store s "
            + "WHERE n.store_id = s.id "
            + "AND s.protocol = 'archive' "
            + "AND n.AUDIT_MODIFIED is not null "
            + "ORDER BY n.id asc ";

在ALF_NODE_PROPERTIES表的where子句中添加一些条件,然后进行设置。

答案 1 :(得分:1)

如果知道删除的节点,则可以使用java api VersionService(还原)。

http:// localhost:8080 / alfresco / api / -default- / public / alfresco / versions / 1 / deleted-nodes / {id} / restore

还原 @Auditable(参数= { “ nodeRef”, “ parentNodeRef”, “ assocTypeQName”, “ assocQName” }) NodeRef恢复(NodeRef nodeRef, NodeRef parentNodeRef, QName assocTypeQName, QName assocQName) 默认情况下,执行深度还原。 参数: nodeRef-对存储中不再存在的节点的节点引用 parentNodeRef-还原节点的新父节点 assocTypeQName-关联类型qname assocQName-assoc qname 返回值: 新还原的节点引用

答案 2 :(得分:0)

此外,如果您的节点应用了“sys:temporary”方面,那么您运气不好,这相当于Windows中的“shift + delete”。不过,您仍然可以从磁盘上已删除的商店获取内容。

看一下这篇博客文章,了解完整的流程: https://blyx.com/2014/08/18/understanding-alfresco-content-deletion/