ONLYOFFICE Alfresco 模块包
该 插件 让用户能够从 Alfresco Share 中用 ONLYOFFICE 文档编辑办公文档。
该插件在官方 Alfresco 插件目录中可以找到。
特性
安装 ONLYOFFICE 文档
您将需要一个 ONLYOFFICE 文档 (文档服务器) 实例,该实例可从 Alfresco 和任何客户终端解析和连接。
如果不是这种情况,请使用官方 ONLYOFFICE 文档文档页面。
ONLYOFFICE 文档还必须能够直接发布到 Alfresco上。
启动 ONLYOFFICE 文档实例的最简单方法是使用 Docker。
安装ONLYOFFICE Alfresco 模块包
要开始在 Alfresco 中使用 ONLYOFFICE 文档,必须在 Ubuntu 14.04 中执行以下步骤的操作:
- 将已编译的 *.amp 包上传到相应的目录以供您安装 Alfresco:
- 对于Alfresco 存储库: 从 onlyoffice-alfresco/repo/target/ 到 /usr/local/tomcat/amps/,
- 对于Alfresco Share: 从 onlyoffice-alfresco/share/target/ 到 /usr/local/tomcat/amps_share/。
您可以在
这里 下载已经编译好的包文件并将它们放置到各自的目录中。
-
使用 模块管理工具 (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
分享
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/.
- 确保文档服务器能够 POST 到 Alfresco 中。
您可能需要在 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
- 重启 Alfresco: sudo ./alfresco.sh stop
sudo ./alfresco.sh start
可以在 /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 配置页面上或通过将 onlyoffice.jwtsecret 添加到 alfresco-global.properties 来指定您自己的密钥。
在 ONLYOFFICE 文档 配置文件中,指定相同的密钥并启用验证。
编译 ONLYOFFICE Alfresco 模块包
如果您打算自己编译 ONLYOFFICE Alfresco 模块包(例如编辑源代码并在之后编译),请按照以下步骤操作:
-
成功构建需要最新的稳定 Oracle Java 版本。
如果您没有安装它,请使用以下命令安装 Oracle Java 8:
sudo apt-get update
sudo apt-get install openjdk-8-jdk
- 安装最新的 Maven。此处描述了安装过程。
- 下载ONLYOFFICE Alfresco模块包源代码:
git clone https://github.com/ONLYOFFICE/onlyoffice-alfresco.git
- 获取子模块:
git submodule update --init --recursive
- 在 repo 和 share 目录中编译包:
cd onlyoffice-alfresco/
mvn clean install
另一种构建 ONLYOFFICE Alfresco 模块包的方法是使用 docker-compose 文件。
在项目目录中使用此命令:
docker-compose up
它是如何运作的
ONLYOFFICE 集成遵循此处的API文档。
- 用户导航到 Alfresco Share 中的文档并选择 在ONLYOFFICE中编辑 菜单选项。
- Alfresco Share 向 repo 端发出请求(表单URL为:/parashift/onlyoffice/prepare?nodeRef={nodeRef}).
-
Alfresco Repo 端为具有以下属性的 Share 准备一个 JSON 对象:
- url - ONLYOFFICE 文档用于下载文档的 URL(包括当前用户的 alf_ticket );
- callbackUrl - ONLYOFFICE 文档通知文档编辑状态的 URL;
- onlyofficeUrl - 客户端需要响应 ONLYOFFICE 文档的 URL(由 onlyoffice.url 属性提供);
- key : UUID+Modified Timestamp 指示 ONLYOFFICE 文档是否再次下载文档;
- title - 文档标题(名称)。
- Alfresco Share 使用这个对象并从 freemarker 模板构建一个页面,填充所有这些值,以便客户端浏览器可以加载编辑器。
- 客户端浏览器从 ONLYOFFICE 文档向 JavaScript 库发出请求,并向 ONLYOFFICE 文档发送包含上述属性的 DocEditor 配置。
- 然后 ONLYOFFICE 文档从 Alfresco 下载文档,用户开始编辑。
- ONLYOFFICE 文档向 回调 URL 发送 POST 请求,以通知 Alfresco 用户正在编辑文档。
- Alfresco 会锁定文档,但仍允许其他具有写入权限的用户通过保留 Action 与 ONLYOFFICE 文档进行实时协作。
- 当所有用户和客户端浏览器都完成编辑后,他们会关闭编辑窗口。
- 在 10 秒 不活动后,ONLYOFFICE 文档向 回调 URL 发送一个 POST,让 Alfresco 知道客户端已完成对文档的编辑并关闭它。
- Alfresco 下载文档的新版本,替换旧版本。
在 此处下载 ONLYOFFICE Alfresco 模块包。