Metadata-Version: 1.0
Name: iwm.recipe.blobstorage
Version: 0.0.2
Summary: ZC Buildout recipe for defining a blob-storage
Home-page: http://svn.kmrc.de/projects/devel/iwm.recipe.blobstorage
Author: Torsten Kurbad
Author-email: t.kurbad@iwm-kmrc.de
License: GPL
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.
        
Keywords: zope3 bebop blobstorage
Platform: UNKNOWN
