跳转到主要内容

ZC Buildout定义文件存储的配方

项目描述

设置文件存储的配方

此配方可用于定义文件存储。它创建了一个ZConfig文件存储数据库规范,其他配方可以使用它来生成ZConfig配置文件。

此配方接受一个可选的路径选项。如果没有提供,它将在与部分同名的子目录中创建并使用buildout部分目录。

该配方记录一个zconfig选项,供其他配方使用。

我们将展示几个示例,使用字典作为模拟的buildout对象

>>> import zc.recipe.filestorage
>>> buildout = dict(
...   buildout = {
...      'directory': '/buildout',
...      },
...   db = {
...      'path': 'foo/Main.fs',
...      },
...   )
>>> recipe = zc.recipe.filestorage.Recipe(
...                   buildout, 'db', buildout['db'])
>>> print(buildout['db']['path'])
/buildout/foo/Main.fs
>>> print(buildout['db']['zconfig'], end='')
<zodb>
  <filestorage>
    path /buildout/foo/Main.fs
  </filestorage>
</zodb>
>>> recipe.install()
()
>>> import tempfile
>>> d = tempfile.mkdtemp()
>>> buildout = dict(
...   buildout = {
...      'parts-directory': d,
...      },
...   db = {},
...   )
>>> recipe = zc.recipe.filestorage.Recipe(
...                   buildout, 'db', buildout['db'])
>>> print(buildout['db']['path'])
/tmp/tmpQo0DTB/db/Data.fs
>>> print(buildout['db']['zconfig'], end='')
<zodb>
  <filestorage>
    path /tmp/tmpQo0DTB/db/Data.fs
  </filestorage>
</zodb>
>>> recipe.install()
()
>>> import os
>>> os.listdir(d)
['db']

更新方法没有做什么,因为数据库部分的目录已经存在,但它存在,所以buildout不会抱怨,也不会意外再次运行install()方法

>>> recipe.update()

如果存储的目录被删除,更新方法是否会将其重新添加

>>> os.rmdir(os.path.join(d, 'db'))
>>> os.listdir(d)
[]
>>> recipe.update()
>>> os.listdir(d)
['db']

这在开发中很有用,当数据库所在的目录被删除,以便从头开始启动数据库。

变更日志

2.0 (2023-02-10)

  • 移除对Python 2.6、2.7、3.2、3.3、3.4、3.5、3.6的支持。

  • 添加对Python 3.7、3.8、3.9、3.10、3.11、PyPy3的支持。

1.1.2 (2014-02-21)

  • 修复:打包错误导致“pip install zc.recipe.filestorage”失败并出现关于缺失README.txt的错误。

1.1.1 (2014-02-16)

  • 修复:修复了一个打包错误,该错误导致在未使用 buildout 运行 setup.py 的测试运行器中测试失败。

1.1.0 (2014-02-14)

  • Python 3 兼容性

  • 使用 Python 的 doctest 模块代替已弃用的 zope.testing.doctest

  • 从 blobstorage 部分移除 'shared-blob-dir'。

1.0.0 (2007-11-03)

  • 初始发布。

下载文件

下载适合您平台的文件。如果您不确定要选择哪个,请了解有关 安装包 的更多信息。

源分布

zc.recipe.filestorage-2.0.tar.gz (7.4 kB 查看散列)

上传时间

构建分布

zc.recipe.filestorage-2.0-py3-none-any.whl (7.8 kB 查看散列)

上传时间 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面