【已解决】Seafile pro 7.1.5 LibreOffice_6.4.5 seahub前端报错问题

环境:CentOS Linux release 7.8.2003 (Core),Python 3.6.8,Seafile Pro 7.1.1 - 7.1.3、7.1.4、7.1.5 都有这个问题,之前7.1.0Beta 是正常的
按要求部署Libreoffice之后,seafevents.log没有报错,显示转换完成在0.xxx秒内。
但是web端界面提示服务器内部错误

seahub.log报错如下:
2020-07-17 15:20:16,623 [INFO] seafes:162 load_seafevents_conf [seafes] use highlighter fvh
2020-07-17 15:20:21,057 [ERROR] root:1184 prepare_converted_html failed to add_office_convert_task: Invalid URL ‘/add-task’: No schema supplied. Perhaps you meant http:///add-task?
Traceback (most recent call last):
File “/root/seafile/seafile-pro-server-7.1.5/seahub/seahub/utils/init.py”, line 1181, in prepare_converted_html
add_office_convert_task(obj_id, doctype, raw_path)
File “/root/seafile/seafile-pro-server-7.1.5/seahub/seahub/utils/init.py”, line 1127, in add_office_convert_task
requests.get(url, params, headers=headers)
File “/root/seafile/seafile-pro-server-7.1.5/seahub/thirdpart/requests/api.py”, line 76, in get
return request(‘get’, url, params=params, **kwargs)
File “/root/seafile/seafile-pro-server-7.1.5/seahub/thirdpart/requests/api.py”, line 61, in request
return session.request(method=method, url=url, **kwargs)
File “/root/seafile/seafile-pro-server-7.1.5/seahub/thirdpart/requests/sessions.py”, line 516, in request
prep = self.prepare_request(req)
File “/root/seafile/seafile-pro-server-7.1.5/seahub/thirdpart/requests/sessions.py”, line 459, in prepare_request
hooks=merge_hooks(request.hooks, self.hooks),
File “/root/seafile/seafile-pro-server-7.1.5/seahub/thirdpart/requests/models.py”, line 314, in prepare
self.prepare_url(url, params)
File “/root/seafile/seafile-pro-server-7.1.5/seahub/thirdpart/requests/models.py”, line 388, in prepare_url
raise MissingSchema(error)
requests.exceptions.MissingSchema: Invalid URL ‘/add-task’: No schema supplied. Perhaps you meant http:///add-task?

上面提到的版本都是这个类似报错

我有同样的问题,不过配置有些不同
我是从7.0.13升级到7.1.5的,然后按照文档配置的seafevent.conf 和seahub_settings.py
我猜想是office_conver 的host和port的问题,以前用7.0.x版的时候没有这个配置,就不会出这个问题。libreoffice版本是LibreOffice 6.0.7.3 00m0(Build:3),应该是满足要求的。
有关host和port,官方的文档没有写明白这块这个是内部交换的,还是外部交换的,我是内网,用的frp穿透,按说这里应该是写外网的。

我测试了一下,在seahub-settings.py中把OFFICE_CONVERTOR_ROOT改值改成具有公网仿问权限的地址就可以了

谢谢,抱歉,我现在才想起来看帖子,我先去操作看看

[root@34437cb700ee conf]# cat seahub_settings.py

-- coding: utf-8 --

SECRET_KEY = “b’7bfadl59ws2b&pz_+!llzba!226nb+lfu=wj(-vve-)e5ly)mk’”
#onlyoffice
ENABLE_ONLYOFFICE = True
VERIFY_ONLYOFFICE_CERTIFICATE = False
ONLYOFFICE_APIJS_URL = ‘http://10.60.6.247:8080/web-apps/apps/api/documents/api.js
ONLYOFFICE_FILE_EXTENSION = (‘doc’, ‘docx’, ‘ppt’, ‘pptx’, ‘xls’, ‘xlsx’, ‘odt’, ‘fodt’, ‘odp’, ‘fodp’, ‘ods’, ‘fods’)
ONLYOFFICE_EDIT_FILE_EXTENSION = (‘docx’, ‘pptx’, ‘xlsx’)
#mail

谢谢你的建议,我改成这样并重启seafile之后终于正常了,如下:
OFFICE_CONVERTOR_ROOT = ‘http://127.0.0.1:6000/

谢谢你的热心回复,我并没有使用ONLYOFFICE这个方案,而是使用LibreOffice 的方案,不过我最后还是解决了这个问题

我写其他应用的是用到onlineoffice的API所以就docker run了个onlineoffice

怎么解决的呢?

我改成这样并重启seafile之后终于正常了,如下:
OFFICE_CONVERTOR_ROOT = ‘http://127.0.0.1:6000/’

6000是固定端口吗?我按这个方法改,还是有一样噢

该6000是对的,现在报 文档转换失败

2020-08-29 18:04:19,937 [INFO] seafes:162 load_seafevents_conf [seafes] use highlighter fvh
2020-08-29 18:04:26,027 [WARNING] django.request:37 inner Method Not Allowed (GET): /office-convert/status/
2020-08-29 18:04:28,074 [WARNING] django.request:37 inner Method Not Allowed (GET): /office-convert/status/

还有其他报错吗?

没有了,安装包下logs文件中其他日志里面都没有错误。

6000端口并不是固定的,而是你自己设置的,同样的位置,如下,另外你那个报错文档转换失败,应该是libreoffice版本的问题,看看https://cloud.seafile.com/published/seafile-manual-cn/deploy_pro/office_documents_preview.md

/conf/seafevents.conf,添加
[OFFICE CONVERTER]
enabled = true
host = 127.0.0.1 # 本机的IP地址,默认 127.0.0.1
port = 6000 # 端口,默认6000
workers = 1 # 并发运行 libreoffice 的进程数
outputdir = /tmp/ # 转换后的 office/pdf 文件的缓存路径。 默认是 /tmp/.
打开 seafile/conf/seahub_settings.py,添加:
OFFICE_CONVERTOR_ROOT = ‘http://127.0.0.1:6000/’ # 与seafevents.conf中的 host 和 port 保持一致