跳到主要内容

Alfresco 集成

这个插件支持您在 AlfrescoShare 中用 ONLYOFFICE 文档编辑办公文档。

该插件在官方 Alfresco 附加组件目录获取。

功能特性​

  • 目前,使用该插件可打开并编辑的文档格式有:DOCM、DOCX、DOTM、DOTX、PDF、POTM、POTX、PPSM、PPSX、PPTM、PPTX、XLSB、XLSM、XLSX、XLTM、XLTX。

  • 以下格式仅支持查看:CSV、DJVU、DOC、DOT、DPS、DPT、EPUB、ET、ETT、FB2、FODP、FODS、FODT、HTM、HTML、HWP、HWPX、KEY、MD、MHT、MHTML、NUMBERS、ODG、ODP、ODS、ODT、OTP、OTS、OTT、OXPS、PAGES、POT、PPS、PPT、RTF、STW、SXC、SXI、SXW、TXT、VSDM、VSDX、VSSM、VSSX、VSTM、VSTX、WPS、WPT、XLS、XLT、XML、XPS。

  • 该插件会在文档库中为办公文档添加在 ONLYOFFICE 中编辑选项。

    在 OnlyOffice 中编辑

    这使多个用户能够实时协作,并将更改保存回 Alfresco。

  • 若要将 ODT、ODP、ODS、DOC、XLS、PPT 文件转换为对应的 OOXML 格式文件,请选择使用 ONLYOFFICE 转换选项。转换后的文件将放置在同一文件夹中。您还可以为文件夹配置规则,使其在上传或更改时自动转换文件。具体细节可在此处找到:这里。

  • 若要创建新文档,请打开您想要创建文档的文件夹,然后点击创建... 按钮。

    创建...

安装 ONLYOFFICE 文档​

您需要一个 ONLYOFFICE 文档(文档服务器)实例,该实例必须能从 Alfresco 和任何终端客户端解析并连接。如果无法满足此条件,请使用官方的 ONLYOFFICE 文档安装指南。ONLYOFFICE 文档还必须能够直接向 Alfresco 发送 POST 请求。

使用 Docker 是启动 ONLYOFFICE 文档实例的最简单方法。

安装 ONLYOFFICE Alfresco 模块包​

要在 Alfresco 中使用 ONLYOFFICE 文档,对于 Ubuntu 系统,请按照以下步骤操作:

  1. 根据您的 Alfresco 安装情况,将已编译的 *.amp 包上传到相应的目录:

    • 对于 Alfresco 存储库,将*onlyoffice-alfresco/repo/target/中的文件上传到/usr/local/tomcat/amps/*目录
    • 对于 Share,将*onlyoffice-alfresco/share/target/中的文件上传到/usr/local/tomcat/amps_share/*目录。
    备注

    您可以在此处下载已编译的包文件,并将它们放置到相应的目录中:此处。

  2. 使用**模块管理工具(MMT)**安装模块,运行以下命令:

    java -jar /usr/local/tomcat/alfresco-mmt/alfresco-mmt.jar install /usr/local/tomcat/amps/onlyoffice-integration-repo.amp /usr/local/tomcat/webapps/alfresco

    有关使用 MMT 的更多详细信息,请参阅 Alfresco 文档。

  3. 确保 ONLYOFFICE 文档能够向 Alfresco 发送 POST 请求。

    您可能需要在 alfresco-global.properties 中更改以下行,或者您可以使用配置页面进行设置:

    alfresco.host=<hostname>
    alfresco.port=443
    alfresco.protocol=https

    share.host=<hostname>
    share.port=443
    share.protocol=https
    备注

    该文件可能位于 /usr/local/tomcat/shared/classes/alfresco-global.properties。

  4. 重启 Alfresco:

    sudo ./alfresco.sh stop
    sudo ./alfresco.sh start

您可以在 Alfresco 的管理员工具中,通过 /share/page/console/admin-console/module-package检查该模块。

配置 ONLYOFFICE Alfresco 模块包​

模块配置可以在 Alfresco 管理控制台中找到,或者直接导航到http://<alfrescohost>/alfresco/s/onlyoffice/onlyoffice-config。

备注

您也可以将onlyoffice.url添加到 alfresco-global.properties 中。通过设置页面进行的配置将覆盖 alfresco-global.properties 中的设置。

从 7.2 版本开始,JWT 默认启用,并且会自动生成密钥,用于限制对 ONLYOFFICE 文档的访问,保障安全性和数据完整性。在 Alfresco 配置页面指定您自己的密钥,或者通过在 alfresco-global.properties 中添加onlyoffice.security.key来设置。在 ONLYOFFICE 文档的配置文件中,指定相同的密钥并启用验证。

编译 ONLYOFFICE Alfresco 模块包​

如果您计划自行编译 ONLYOFFICE Alfresco 模块包(例如,编辑源代码然后进行编译),请按照以下步骤操作:

  1. 成功编译需要最新的稳定版 Java。如果未安装,可使用以下命令安装 OpenJDK 8:

    sudo apt-get update
    sudo apt-get install openjdk-8-jdk
  2. 安装最新版的 Maven。安装过程可参考:这里。

  3. 下载 ONLYOFFICE Alfresco 模块包的源代码:

    git clone https://github.com/ONLYOFFICE/onlyoffice-alfresco.git
  4. 获取子模块:

    git submodule update --init --recursive
  5. 在repo和share目录中编译包:

    cd onlyoffice-alfresco/
    mvn clean install

另一种构建 ONLYOFFICE Alfresco 模块包的方法是使用 docker-compose 文件。

在项目目录中使用以下命令:

docker-compose up

工作原理​

ONLYOFFICE 集成遵循此处记录的 API 规范:这里。

  1. 您在 Alfresco Share 中导航到一个文档,并选择在 ONLYOFFICE 中编辑菜单选项。

  2. Alfresco Share 向存储库端发出请求(URL 格式为:/parashift/onlyoffice/prepare?nodeRef={nodeRef})。

  3. Alfresco 存储库端为 Share 准备一个包含以下属性的 JSON 对象:

    • url:ONLYOFFICE 文档用于下载文档的 URL(包含当前用户的 alf_ticket);
    • callbackUrl:ONLYOFFICE 文档用于通知文档编辑状态的 URL;
    • onlyofficeUrl:客户端需要回复给 ONLYOFFICE 文档的 URL(由onlyoffice.url属性提供);
    • key:用于指示 ONLYOFFICE 文档是否需要重新下载文档的UUID+ 修改时间戳;
    • title:文档标题(名称)。
  4. Alfresco Share 获取该对象,并从 FreeMarker 模板构建一个页面,填充所有这些值,以便您的浏览器可以加载编辑器。

  5. 您的浏览器向 ONLYOFFICE 文档的 JavaScript 库发出请求,并将包含上述属性的 DocEditor 配置发送给 ONLYOFFICE 文档。

  6. 然后,ONLYOFFICE 文档从 Alfresco 下载文档,您开始编辑。

  7. ONLYOFFICE 文档向callbackUrl发送 POST 请求,通知 Alfresco 您正在编辑文档。

  8. Alfresco 锁定文档,但仍允许具有写入权限的其他用户通过保留相关操作,与 ONLYOFFICE 文档进行实时协作。

  9. 当所有用户和浏览器完成编辑后,关闭编辑窗口。

  10. 在10 秒无操作后,ONLYOFFICE 文档向callbackUrl发送 POST 请求,告知 Alfresco 客户端已完成文档编辑并关闭了窗口。

  11. Alfresco 下载文档的新版本,替换旧版本。

在此处下载 ONLYOFFICE Alfresco 模块包:这里。