java - Liferay 门户中的文档处理

标签 java content-management-system liferay jackrabbit document-management

在过去的 2 年里,我一直在大量使用 Liferay,但我从未需要任何广泛的文档管理。

现在我有一个 portlet,用户可以在其中上传文档(MS office OLE2 文档、ODS 文档、PDF 等),我必须将它们与所有可用的元数据一起保存。

我知道如果不使用 Liferay 我该怎么做,我可能会使用 Apache solr 和 Apache Tika(UpdateRichDocumentsExtractingRequestHandler)或 Apache Jackrabbit,它们在后台使用 Apache Tika(org.apache.jackrabbit .extractor.*).

问题是,如果我查看 Liferay 的主干,有一些关键类:

Hooks (JCRHook, FileSystemHook, CMISHook, s3Hook)从内部雇用的 DLLocalServiceImpl有点直接

另一种选择是使用 DLAppLocalServiceImpl正在雇用 DLRepositoryLocalServiceImpl并且文件也通过 Hooks 持久保存到存储库中,但是在那里完成了很多额外的工作。

  1. Liferay 中没有 jackrabbit-text-extractors 库,所以我想如果我想从 PDF、DOC、ODS 文档中提取元数据,我会遇到很多困难...因为 DL 服务层不接受额外的属性

    1. 我认为我必须避免使用 DL 服务和 JCR Hook 并直接访问 Jackrabbit...但我会失去兼容性和迁移我的存储库等的可能性。

可以请任何人在这方面合作吗?谢谢

最佳答案

SOLR 用于索引,Jackrabbit 用于文档存储。在代码中管理 Liferay Document Library 相当容易,只需查看 DL*LocalServiceUtil 类,即 DLFolderLocalServiceUtilDLFileLocalServiceUtil。默认情况下,Liferay 只是在硬盘驱动器上创建一个匹配的文件夹/文件结构(名称已更改),因此如果您想要更多,您只需编写代码或使用 Jackrabbit,因为 Liferay 允许上传/下载和开箱即用通过控制面板和各种 portlet。

我没有将 JackRabbit 与 Liferay 一起使用,但是一旦配置好,一切都应该在幕后进行管理,您不需要在前端担心它。

当您说“所有元数据都可用”时,我不确定保留了什么,但除了重命名文件以便对其进行跟踪之外,不应该有任何其他更改。通过上传每种类型的文件并检查 LIFERAY/data/document_library 目录和子目录中的条目,应该可以快速轻松地进行测试。同样,如果使用 Jackrabbit,情况会有所不同。

关于java - Liferay 门户中的文档处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5136564/

相关文章:

html - 我的字体不适用于所有设备

javascript - AJAX调用liferay门户

liferay - 如何在liferay中以编程方式创建 'empty'期刊文章

java - Java 8 中的比较器

java - jackson fasterxml 多个同名元素

java - 在代码中多次访问相同的属性(对象的成员)

java - 构造函数忽略 "for"循环(Java)

c# - Orchard 联络表格

c# - 如何打开/关闭代码模块?

java - Liferay 中的 Oracle 自定义 sql