![提取 zope data.fs](https://linux22.com/image/491576/%E6%8F%90%E5%8F%96%20zope%20data.fs.png)
我有一个 zope/plone 网站,我在其中存储了来自多个用户的图片和视频,但现在我想将内容移动到另一个网站。提取 Zope 的 data.fs 内容的最简单方法是什么?我听说有 Python 模块可以做到这一点,但如果可能的话,我想避免从头开始编写代码。我使用的是 Ubuntu 9.04 和 Python 2.6。
编辑:我的目的不是将内容移动到另一个 plone 站点,而是想将内容提取为常规文件并从头开始构建一个新站点(可能不是 plone 站点)。我现在没有可用的 plone 站点,因为 Ubuntu 9.04 不支持它。抱歉,我有点模棱两可。
答案1
ZODB 是一个全对象数据库,其中的数据不以文件形式存储。例如,你可以将它与 postgres 进行比较:不可能将 postgres 数据直接转换为一堆文件。
有几种从 ZODB 中提取数据的选项可能适合您:
- 您可以为 Zope 启用 FTP 服务。有关详细信息,请参阅 zope.conf 配置文件(它有许多注释来解释选项)。启用 FTP 后,您可以使用任何标准 FTP 客户端提取大多数数据。
- Plone 有多种数据导入/导出产品。也许其中一种适合您。
不幸的是,这两个选项都依赖于您能够运行 Zope,而您声明您无法做到这一点。我猜这是因为 Plone 需要 Zope 2.10 或更早的版本,而它只能在 python 2.4 上运行。如果是这样,您可以尝试编译一个较旧的 python 版本并将其安装在您的系统上。Python 完全支持同时安装多个版本,因此这不会破坏您系统上的任何其他东西。
恐怕如果不运行任何 Python 工具就无法从 ZODB 中提取数据,而且为了能够从 ZODB 加载 Plone 数据,您需要有一个可运行的 Plone 环境,以便 ZODB 可以加载其中存储的数据的 Python 类。
答案2
tres seaver 编写了一个产品,可以实现很多你想要的功能 - 虽然我不知道图像方面的情况,但大概如此。
如果我没记错的话,它叫做 fsdump。
答案3
在 ZMI 中勾选根文件夹中的站点,然后单击导出按钮,这将在 $PLONE/exports 中创建一个文件,在新服务器上的 ZMI 中单击导入并指向此文件,zope 将像在另一台服务器上一样导入它。