我有一个 zope/plone 站点,我在其中存储了来自多个用户的图片和视频,但我现在想将内容移动到另一个站点。提取 Zope 的 data.fs 内容的最简单方法是什么?我听说有用于此的 python 模块,但如果可能的话,我想避免从头开始编写代码。我正在使用带有 python 2.6 的 Ubuntu 9.04。
编辑:我的意图不是将内容移动到另一个克隆站点,我想将内容提取为常规文件并从头开始构建一个新的(可能是非克隆的)站点。我现在没有可用的克隆站点,因为 Ubuntu 9.04 不支持它。很抱歉模棱两可。
ZODB 是一个完整的对象数据库,其中的数据不存储为文件。例如,您可以将其与 postgres 进行比较:不可能仅将您的 postgres 数据转换为一堆文件。
有几个选项可以从您的 ZODB 中提取可能适合您的数据:
不幸的是,这两个选项都依赖于你能够运行 Zope,而你说你不能这样做。我猜这是因为 Plone 需要 Zope 2.10 或更早版本,它只能在 python 2.4 上运行。如果是这样,您可以尝试编译较旧的 python 版本并将其安装在您的系统上。Python 完全支持同时安装多个版本,因此不应破坏系统上的任何其他内容。
恐怕不运行任何 python 工具就不可能从 ZODB 中提取数据,并且要能够从 ZODB 加载 Plone 数据,您需要有一个工作的 Plone 环境,以便 ZODB 可以加载存储数据的 python 类在里面。
tres seaver 编写了一个产品,它可以满足您的很多需求——虽然我不知道图像,但可能。
如果我没记错的话,它叫做 fsdump。
在 ZMI 中勾选根文件夹中的站点,然后单击导出按钮,这将在 $PLONE/exports 中创建一个文件,在 ZMI 中的新服务器服务器上单击导入并指向该文件,然后 zope 将导入它就像它在另一台服务器上。