On 4/26/11 7:40 AM, William Heymann wrote:
> I am working on a patch for Blob support in OFS.Image/File and I am running
> into a small problem. What is the correct way to detect if the current ZODB
> supports blobs?
> If I just do
> self.data = ZODB.blob.Blob(data)
> in update_data in OFS.Image
> and a system does not support blobs
> I get this error
> Traceback (innermost last):
>    Module ZPublisher.Publish, line 134, in publish
>    Module Zope2.App.startup, line 301, in commit
>    Module transaction._manager, line 89, in commit
>    Module transaction._transaction, line 329, in commit
>    Module transaction._transaction, line 443, in _commitResources
>    Module ZODB.Connection, line 563, in commit
>    Module ZODB.Connection, line 619, in _commit
>    Module ZODB.Connection, line 662, in _store_objects
> Unsupported: Storing Blobs in<ZEO.ClientStorage.ClientStorage object at
> 0x3248590>  is not supported.
> which does not even mention OFS.Image anywhere
> I tried putting in
> try:
>      self.data = ZODB.blob.Blob(data)
> except zExceptions.Unsupported:
>      self.data = data
> and this of course did not work since the error is not actually occurring
> here.
> What I am trying to do is make is to that Blobs are used if blobs are
> supported and not used if they are not currently supported. For all of my
> systems this is not an issue since I only support blobs but for a patch to be
> accepeted it seems that it would need to work either way.
> I considered putting in a configuration switch in zope.conf to say if blobs
> should be used or not so that it is up to the developer to set the switch and
> enable blob support and the system would just give errors if setup incorrectly
> but that does not seem like a good idea.
You can get (persistent object)._p_jar.db().storage and check if it 
provides ZODB.interfaces.IBlobStorage.

David Glick
 Web Developer

Groundwire: You Are Connected           

Online tools and strategies for the environmental movement.  Sign up for 
Groundwire News!

Zope-Dev maillist  -  Zope-Dev@zope.org
**  No cross posts or HTML encoding!  **
(Related lists - 
 https://mail.zope.org/mailman/listinfo/zope )

Reply via email to