plone.app.blob

HomePage: http://plone.org/products/plone.app.blob

Author: Plone Foundation

Download: https://pypi.python.org/packages/source/p/plone.app.blob/plone.app.blob-1.5.10.zip

        ==============
plone.app.blob
==============

Overview
========

This package aims to be an add-on for Plone (>= 3.x) integrating ZODB (>=3.8)
blob support, which allows large binary data to be managed by the ZODB, but
separately from your usual ``FileStorage`` database, i.e. ``Data.fs``.  This
has several advantages, most importantly a much smaller ``Data.fs`` and better
performance both cpu- as well as memory-wise.

  .. |__| unicode:: U+20  .. space


Contents
========

.. contents:: |__|


Status
======

At the moment the integration for "File" content should be stable, but still
needs more field testing.  It is being successfully used in several production
deployments, though.  The provided blob-based content type should safely
usable as a drop-in replacement for ``ATFile``.  As such it has been
successfully tested against all ``CMFPlone`` and ``ATContentTypes`` tests.
Please use the provided ``test-compatibility.sh`` script to run these tests
for yourself.

Image support is still in an alpha stadium and not enabled by default. It can
be activated by applying the respective profile via the portal setup tool.

More detailed information about the integration and the current status can be
found in the corresponding `Plone enhancement`_ and `Plone 4 PLIP`_ tickets.

  .. _`Plone enhancement`: http://dev.plone.org/plone/ticket/6805
  .. _`Plone 4 PLIP`: http://dev.plone.org/plone/ticket/7822
  .. |--| unicode:: U+2013   .. en dash
  .. |---| unicode:: U+2014  .. em dash


Requirements
============

Plone 3.0 or newer is required. The package has been tested with all versions
from 3.0 up to and including 4.0. However, as all versions before 3.0.4
require a workaround described in the `Troubleshooting`_ section below, it is
recommended to use `Plone 3.0.4`_ or a more recent version.

  .. _`Plone 3.0.4`: http://plone.org/products/plone/releases/3.0.4


Installation
============

The easiest way to get ZODB blob support in Plone 3 using this package is to
work with installations based on `zc.buildout`_.  Other types of installations
should also be possible, but might turn out to be somewhat tricky |---| please
see the `FAQ`_ section below.

To get started you will simply need to add the package to your "eggs" and
"zcml" sections, run buildout, restart your Plone instance and install the
"plone.app.blob" package using the quick-installer or via the "Add-on
Products" section in "Site Setup".

  .. _`zc.buildout`: http://pypi.python.org/pypi/zc.buildout/

A sample buildout configuration file, i.e. ``buildout.cfg``, could look like
this::

  [buildout]
  parts = zope2 instance
  extends = http://dist.plone.org/release/3.3.1/versions.cfg
  find-links =
      http://dist.plone.org/release/3.3.1
      http://dist.plone.org/thirdparty/
  versions = versions

  [versions]
  ZODB3 = 3.8.3

  [zope2]
  recipe = plone.recipe.zope2install
  url = ${versions:zope2-url}

  [instance]
  recipe = plone.recipe.zope2instance
  zope2-location = ${zope2:location}
  blob-storage = var/blobstorage
  user = admin:admin
  eggs =
      Plone
      plone.app.blob
  zcml = plone.app.blob

You can also use this buildout configuration to create a fresh Plone
installation. To do so you would store it as ``buildout.cfg`` |---| preferably
in an empty directory, download `bootstrap.py
<http://svn.zope.org/*checkout*/zc.buildout/trunk/bootstrap/bootstrap.py>`_
into the same directory and issue the following commands::

  $ python bootstrap.py
  $ ./bin/buildout
  $ ./bin/instance fg

After that you create a "Plone Site" via the `ZMI`_ as usual and either
select the "plone.app.blob" extension profile at creation time or again
install the "plone.app.blob" package using one of the above mentioned methods.

  .. _`ZMI`: http://localhost:8080/manage

A sample ZEO buildout configuration could look like this::

  [buildout]
  parts = zope2 zeoserver instance1 instance2
  extends = http://dist.plone.org/release/3.3.1/versions.cfg
  find-links =
      http://dist.plone.org/release/3.3.1
      http://dist.plone.org/thirdparty/
  versions = versions

  [versions]
  ZOD