跳到主要内容

Alfresco 集成

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

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

功能特性

  • 目前,使用该插件可打开并编辑的文档格式有:DOCX、XLSX、PPTX、DOCXF、OFORM。

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

    在OnlyOffice中编辑

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

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

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

安装ONLYOFFICE文档

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

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

安装ONLYOFFICE Alfresco模块包

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

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

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

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

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

    Alfresco

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

    Share

    java -jar /usr/local/tomcat/alfresco-mmt/alfresco-mmt.jar install /usr/local/tomcat/amps_share/onlyoffice-integration-share.amp /usr/local/tomcat/webapps/share

    有关使用MMT的更多详细信息,请访问以下地址:https://docs.alfresco.com/content-services/latest/install/zip/amp/

  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.jwtsecret来设置。在ONLYOFFICE文档的配置文件中,指定相同的密钥并启用验证。

编译ONLYOFFICE Alfresco模块包

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

  1. 成功编译需要最新的稳定版Oracle Java版本。如果未安装,可使用以下命令安装 Oracle Java 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. reposhare目录中编译包:

    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模块包:这里