ZC Buildout recipe for defining a blob-storage
Project description
Recipe for setting up a blobstorage
===================================
This recipe can be used to define a blobstorage. It creates a ZConfig
file-storage database specification supporting blobs via zope.file that
can be used by other recipes to generate ZConfig configuration files.
This recipe takes an optional combination of a path and a blob_dir option.
If one is specified, the other is mandatory. If none are given (recommended),
the recipe creates and uses a subdirectory of the buildout parts directory
with the same name as the part and a subdirectory 'blobs' therein.
Additional options, like cache-size, can be given via the
storage-options
Parameter.
The recipe was derived from Jim's zc.filestorage recipe.
Original README follows:
========================
The recipe records a zconfig option for use by other recipes.
We'll show a couple of examples, using a dictionary as a simulated buildout
object::
>>> 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'],
<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']['blob-dir']
/tmp/tmpQo0DTB/db/blobs
>>> print buildout['db']['zconfig'],
<zodb>
<blobstorage>
blob-dir /tmp/tmpQo0DTB/db/blobs
<filestorage>
path /tmp/tmpQo0DTB/db/Data.fs
</filestorage>
</blobstorage>
</zodb>
>>> recipe.install()
()
>>> import os
>>> os.listdir(d)
['db']
The update method doesn't do anything, as the database part's directory
already exists, but it is present, so buildout doesn't complain and doesn't
accidentally run install() again::
>>> recipe.update()
To do
-----
- Add support for various file-storage options
- Create a ZODB-configuration recipe that is meant to be a base class for
storage recipes and provides database-configuration options.
===================================
This recipe can be used to define a blobstorage. It creates a ZConfig
file-storage database specification supporting blobs via zope.file that
can be used by other recipes to generate ZConfig configuration files.
This recipe takes an optional combination of a path and a blob_dir option.
If one is specified, the other is mandatory. If none are given (recommended),
the recipe creates and uses a subdirectory of the buildout parts directory
with the same name as the part and a subdirectory 'blobs' therein.
Additional options, like cache-size, can be given via the
storage-options
Parameter.
The recipe was derived from Jim's zc.filestorage recipe.
Original README follows:
========================
The recipe records a zconfig option for use by other recipes.
We'll show a couple of examples, using a dictionary as a simulated buildout
object::
>>> 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'],
<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']['blob-dir']
/tmp/tmpQo0DTB/db/blobs
>>> print buildout['db']['zconfig'],
<zodb>
<blobstorage>
blob-dir /tmp/tmpQo0DTB/db/blobs
<filestorage>
path /tmp/tmpQo0DTB/db/Data.fs
</filestorage>
</blobstorage>
</zodb>
>>> recipe.install()
()
>>> import os
>>> os.listdir(d)
['db']
The update method doesn't do anything, as the database part's directory
already exists, but it is present, so buildout doesn't complain and doesn't
accidentally run install() again::
>>> recipe.update()
To do
-----
- Add support for various file-storage options
- Create a ZODB-configuration recipe that is meant to be a base class for
storage recipes and provides database-configuration options.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Built Distribution
Close
Hashes for iwm.recipe.blobstorage-0.0.2-py2.4.egg
Algorithm | Hash digest | |
---|---|---|
SHA256 | 60224fa30e17596fb6a7f6300357d8c26433cd38b3deea6569057f42e99e3121 |
|
MD5 | 9108237ccdb6efe183848bc0831366d7 |
|
BLAKE2-256 | 263a567fa9e3abaaa207fd8242bfd63a54a75dbb35a89006f0366fa596d43693 |