我是露天社区的新手,我正在将露天社区用于文件管理系统。
现在我的问题是我删除了一个文档,如下所示,现在我想将这些数据恢复到删除之前存在的文件夹中
Document document = (Document) session.getObjectByPath(filePath);
document.delete();
请任何人帮助我......
答案 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/