Nextcloud 集成
这个应用程序允许用户借助ONLYOFFICE文档在Nextcloud中编辑办公文档。
最新的已签名连接器版本可在Nextcloud应用商店获取。
功能特性
- 目前,使用该应用程序可打开并编辑以下文档格式:DOCX、XLSX、PPTX、CSV、TXT、DOCXF、OFORM。
- 仅支持查看的文档格式为:PDF。
- 以下格式可转换为OOXML格式:DOC、DOCM、DOT、DOTX、EPUB、HTM、HTML、ODP、ODT、POT、POTM、POTX、PPS、PPSM、PPSX、PPT、PPTM、RTF、XLS、XLSM、XLT、XLTM、XLTX。
- 该应用程序会在新建(+)菜单中创建用于创建文档、电子表格、演示文稿的选项。它还会在文档库中为Office文档创建一个新的在ONLYOFFICE中打开菜单项。这使得多个用户能够实时协作,并将更改保存回Nextcloud。连接到同一文档服务器的多个联合Nextcloud实例之间也支持协同编辑。
安装ONLYOFFICE文档
您需要一个ONLYOFFICE文档(文档服务器)实例,该实例必须能从Nextcloud和任何终端客户端解析并连接。如果无法满足此条件,请使用官方的ONLYOFFICE文档安装指南。ONLYOFFICE文档还必须能够直接向Nextcloud发送POST请求。
ONLYOFFICE文档和Nextcloud可以安装在不同的计算机上,也可以安装在同一台机器上。如果选择后者,您需要为文档服务器设置一个自定义端口,因为默认情况下ONLYOFFICE文档和Nextcloud都使用80端口。或者您可以在代理服务器后使用ONLYOFFICE文档,有关配置方法,请参考这篇文章。
使用[Docker](https://github.com/ONLYOFFICE/Docker-DocumentServer)是启动ONLYOFFICE文档实例的最简单方法。
您也可以使用我们的Docker安装方式,通过几条命令就能完成。
安装Nextcloud ONLYOFFICE集成应用程序
Nextcloud管理员可以从内置应用市场安装集成应用程序。为此,点击用户名并选择应用。然后,在可用应用列表中找到ONLYOFFICE并进行安装。
如果安装Nextcloud的服务器没有互联网访问权限,或者由于其他原因需要手动安装,管理员可以按以下步骤手动安装该应用程序。要在Nextcloud中使用ONLYOFFICE文档,必须执行以下步骤:
-
进入Nextcloud服务器的*apps/*目录(或用于连接应用程序的其他目录):cd apps/
-
获取Nextcloud ONLYOFFICE集成应用程序。有以下几种方法:
git clone https://github.com/ONLYOFFICE/onlyoffice-nextcloud.git onlyoffice
cd onlyoffice
git submodule update --init --recursive -
修改所有者,以便可以从Nextcloud Web界面更新应用程序:
chown -R www-data:www-data onlyoffice
- 在Nextcloud中,管理员打开包含未启用应用的*~/settings/apps/disabled*页面,并为ONLYOFFICE应用点击启动。
配置Nextcloud ONLYOFFICE集成应用程序
在Nextcloud中,打开包含ONLYOFFICE部分管理设置的*~/settings/admin/onlyoffice*页面。输入以下地址来连接ONLYOFFICE文档:
https://<文档服务器地址>/
其中,文档服务器地址是安装了ONLYOFFICE文档的服务器名称。该地址必须能被用户浏览器和Nextcloud服务器访问。Nextcloud服务器地址也必须能被ONLYOFFICE文档访问,以确保正常工作。
有时,网络配置可能会导致已安装的Nextcloud和ONLYOFFICE文档之间无法通过公共地址进行请求。**高级服务器设置”**允许设置Nextcloud服务器内部请求的ONLYOFFICE文档地址,以及ONLYOFFICE文档内部请求的返回Nextcloud地址。您需要在相应字段中输入这些地址。
从7.2版本开始,JWT默认启用,并且会自动生成密钥,用于限制对ONLYOFFICE文档的访问,保障安全性和数据完整性。在Nextcloud管理配置中指定您自己的密钥。在ONLYOFFICE文档配置文件中,指定相同的密钥并启用验证。
启用或禁用在同一标签页中打开文件设置。
在ONLYOFFICE中打开操作将添加到文件上下文菜单中。您可以将此操作设置为默认操作,这样在点击选定文件类型的文件名时,就会使用该操作。
检查连接
您可以使用以下occ命令检查与ONLYOFFICE文档的连接:
occ onlyoffice:documentserver --check
您将看到一段文本,内容要么是连接成功的信息,要么是错误原因。
工作原理
ONLYOFFICE集成遵循此处记录的API规范:此处。
-
创建新文件时,用户在Nextcloud中导航到文档文件夹,然后点击新建(+)菜单中的文档、电子表格”或演示文稿选项。
-
浏览器调用 /lib/Controller/EditorController.php控制器中的creat方法。此方法会将assets文件夹中的文件副本添加到用户当前所在的文件夹中。
3.打开现有文件时,用户在Nextcloud中找到该文件,并选择在ONLYOFFICE中打开菜单项。
4.会打开一个新的浏览器标签页,并调用 /lib/Controller/EditorController.php控制器中的index方法。
-
应用程序准备一个包含以下属性的JSON对象:
- url- ONLYOFFICE文档用于下载文档的URL;
- callbackUrl- ONLYOFFICE文档用于通知文档编辑状态的URL;
- documentServerUrl- 客户端需要响应给ONLYOFFICE文档的 URL(可在管理设置页面中设置);
- key- 由UUID+修改时间戳组成,用于指示ONLYOFFICE文档是否需要重新下载文档。
-
Nextcloud获取该对象,并从templates/editor.php模板构建一个页面,填充所有这些值,以便客户端浏览器可以加载编辑器。
-
客户端浏览器向ONLYOFFICE文档的JavaScript库发出请求,并将包含上述属性的DocEditor配置发送给ONLYOFFICE文档。
-
然后,ONLYOFFICE文档从Nextcloud下载文档,用户开始编辑。
-
ONLYOFFICE文档向callbackUrl发送POST请求,通知Nextcloud有用户正在编辑文档。
-
当所有用户和客户端浏览器完成编辑后,他们关闭编辑窗口。
-
在10秒无操作后,ONLYOFFICE文档向callbackUrl发送POST请求,告知Nextcloud客户端已完成文档编辑并关闭了它。
-
Nextcloud下载文档的新版本,替换旧版本。
已知问题
-
连接外部存储:在某些情况下,使用外部存储应用添加存储时,协同编辑会出现问题。如果使用相同的授权密钥进行连接(选择用户名和密码或全局凭证身份验证类型),则用户可以进行协同编辑。如果使用不同的授权密钥(登录凭据,保存到数据库或用户输入,存储到数据库身份验证选项),则无法进行协同编辑。当使用登录凭据,保存到会话身份验证类型时,文件无法在编辑器中打开。
-
证书验证:如果文档服务器使用自签名证书,Nextcloud将不会验证此类证书,并且不允许与ONLYOFFICE文档进行连接。这个问题可以通过两种方式解决:
- 在Nextcloud的ONLYOFFICE管理页面服务器设置部分,勾选**禁用证书验证(不安全)**复选框。
- 手动更改Nextcloud配置文件。找到Nextcloud配置文件(/Nextcloud/config/config.php)并打开它。在其中插入以下部分:
<?php
'onlyoffice' => array (
'verify_peer_off' => true
)
?>这将禁用证书验证,允许Nextcloud与ONLYOFFICE文档建立连接。
请记住,这是一个临时的不安全解决方案,我们强烈建议您更换为由某些证书颁发机构颁发的证书。完成更换后,不要忘记取消勾选相应的设置框或从Nextcloud配置文件中删除上述部分内容。
- 后台任务:如果编辑器在正常运行一段时间后无法打开或保存文档,原因可能是网络设置更改、相关服务被禁用或SSL证书存在问题。
为了解决这个问题,我们添加了一个在服务器上运行的异步后台任务,用于检查编辑器的可用性。它可以测试您的Nextcloud实例和ONLYOFFICE文档之间的连接,即检查服务器地址的可用性和JWT密钥的有效性。
如果检测到任何问题,ONLYOFFICE集成连接器(以及创建和打开文件的功能)将被禁用。作为Nextcloud管理员,您将收到相应的通知。
此选项可帮助您避免因服务器设置不正确而需要更改设置时出现的问题。
默认情况下,此后台任务每天运行一次。如有必要,您可以更改运行频率。为此,打开Nextcloud配置文件(_/Nextcloud/config/config.php_)。插入以下部分并输入所需的分钟数:
<?php
"onlyoffice" => array (
"editors_check_interval" => 3624
)
?>
要禁用此检查,请输入值0。
-
联合云共享:如果使用联合云共享应用共享文档,连接到不同ONLYOFFICE服务器的Nextcloud实例之间将无法进行协同编辑。来自同一文档服务器的用户可以在协同编辑模式下编辑文档,但来自两个(或更多)不同文档服务器的用户将无法实时协作处理同一文档。
-
文件转换:ONLYOFFICE文档在打开和编辑文件时以Office Open XML格式为基础。如果文件格式与OOXML不同,为了使ONLYOFFICE文档能够正常工作并提高性能,文件仍将转换为相应的OOXML格式。之后您可以编辑文件,对基础OOXML格式进行任何更改,并将文件保存为该基础OOXML格式。
如果原始Nextcloud文件格式与基础格式不同,而您仍想将其保存为原始格式,文件将从OOXML转换回该格式。由于这些格式在根本上存在差异,一些数据(如图表、表格、自选图形或图像)和格式可能会丢失,这是因为一些格式(csv,txt等)不支持这些内容,或者对它们的处理方式与OOXML标准不同。这就是为什么默认情况下所有非OOXML文件仅支持查看,尽管在上下文菜单中有转换文件的选项。如果您了解转换后可能会丢失数据/格式,但仍想打开非OOXML文件进行编辑,可以在设置列表中勾选这些文件。默认情况下,csv和txt文件支持编辑。
-
当用户访问没有下载权限的文档时,文件打印和使用系统剪贴板的功能不可用。不过,可以通过编辑器工具栏和上下文菜单中的按钮在编辑器内进行复制和粘贴操作。
在此处下载Nextcloud ONLYOFFICE集成应用程序:此处.