XML-RPC文档转换服务器
项目描述
安装Cloudooo
$ python2.6 setup.py install
- 警告
您必须在此python中安装setuptools>=0.6c11。
安装LibreOffice / OpenOffice.org
- 安装LibreOffice或OpenOffice.org。
创建配置文件
配置文件用于使用paster启动应用程序。$ cp ./cloudooo/samples/samples.conf . # 复制到当前文件夹
- 下一步是在cloudooo.conf中定义一些属性
working_path - 运行应用程序的文件夹。此文件夹需要创建。
uno_path - UNO库安装的文件夹(例如:/opt/libreoffice/basis-link/program/)
soffice_binary_path - soffice.bin安装的文件夹(例如:/opt/libreoffice/program/)
运行应用程序
$ paster serve ./cloudooo.conf
或作为守护进程运行
$ paster serve ./cloudoo.conf –daemon
停止应用程序
$ kill -1 PASTER_PID
警告:始终使用SIGHUP,因为只有使用此信号才能正确停止所有进程。
Cloudooo 描述
XMLRPC + WSGI 将成为连接 LibreOffice / OpenOffice.org 的桥梁,方便访问。这将实现一个 XMLRPC 服务器到 WSGI (Paster) 的集成。
PyUno 用于通过打开套接字连接到 LibreOffice / OpenOffice.org。所有功能将由 PyUno 处理。
同一时间只有一个进程可以访问 LibreOffice / OpenOffice.org。
所有客户端在连接到 XMLRPC 服务器时都接收到相同的对象(代理)。
管理 LibreOffice / OpenOffice.org 进程
启动 'soffice.bin';- Pyuno 启动 'soffice.bin' 进程,通信通过套接字;- 'soffice.bin' 进程在后台运行;
控制 'soffice.bin';- 如果套接字丢失连接,cloudooo 会杀死进程,重新启动进程并再次提交文件;
XMLRPC 服务器 - XMLRPC + WSGI
- 将文档发送到 'soffice.bin' 并返回带有元数据的转换后的文档;
XMLRPC 接收一个文件并通过 Pyuno 连接到 'soffice.bin' 进程;
Pyuno 打开一个新文档,写入、添加元数据,并将编辑后的文档或转换成 xmlrpc 返回给用户;
当最终使用 'soffice.bin' 时,应确保已正确终止;
导出为其他格式;
邀请文档并仅返回元数据;
编辑文档的元数据;
- 问题和可能的解决方案
'soffice.bin' 卡住;- 终止进程,启动 'soffice.bin' 并再次提交文档(无需重新启动 cloudooo);
'soffice.bin' 崩溃;- 终止进程,验证是否已杀死所有进程,启动 'soffice.bin' 并再次提交文档(无需重新启动 cloudooo);
'soffice.bin' 接收到文档并卡住;- 如果 'soffice.bin' 不响应,则杀死进程并重新启动;
发送的文档已损坏;- 将错误写入日志并验证进程是否不在内存中;
1.2.3 (2010-04-01)
Eggify 处理器
配置文件告诉 cloudooo 哪个处理器必须被加载;
更新界面(尚未实现);
1.2.2 (2010-02-07)
不再使用 Xvfb;
1.2.1 (2010-01-21)
提高 ERP5 兼容性;
1.2.0 (2010-01-19)
支持 LibreOffice3.3rc3;
1.1.0 (2010-01-13)
重构 runCloudOOoUnitTest.py 以更好地控制守护进程;
使用 argparse 代替 optparse;
重构测试以使用布尔断言来验证 True 或 False;
使用 python-magic 根据 MIME 类型验证输出文档;
将 cloudooo 的文件夹结构更改为将处理器、mimemapper 和与处理器相关的辅助程序放在与处理器相同的文件夹中;
重构代码以使用 json 代替 jsonpickle;
为 OOGranulate 添加 getTableItem、getTableItemList 和 getTableMatrix;
为 OOGranulate 添加 getParagraphItemList 和 getParagraphItem;
为 OOGranulate 添加 getImageItemList 和 getImage;
添加 OdfDocument;
添加 granulate 接口;
1.0.9
使用 pkg_resources 获取辅助脚本;
将内部脚本移动到辅助文件夹;
从内部脚本中删除 cloudooo 作为依赖项;
修改了传递给 OpenOffice.org 过滤器的方式;
1.0.8
删除所有与 cloudooo 脚本路径相关的所有属性;
根据您的 python eggs 使用所有脚本;
修复了将电子表格转换为 html 时的错误;
1.0.7
删除入口点,将其视为普通文件;
使用 pkg_resources 搜索所有脚本文件;