[Zope-dev] Re: serving BLOBs

Tres Seaver tseaver at zope.com
Mon Oct 11 13:15:16 EDT 2004


Johan Carlsson wrote:
> Tres Seaver wrote:
> 
>> Johan Carlsson wrote:
>>
>>> What exactly is the filestream_iterator that the FileCacheManager uses?
>>>
>>> As I understand it this is a new feature?
>>
>>
>>
>> For Zope >= 2.7.2, ZPublisher defines an interface, 
>> ZPublisher.Iterators.IStreamIterator.  An application can return an 
>> object implementing this interface to the publisher, instead of a 
>> string;  if so, the publisher hands it directly to medusa, and frees 
>> up the application thread / database connection.  medusa will use the 
>> iterator to send the response back to the user, without first 
>> converting it to a single big string.
> 
> 
> That's actually brilliant.
> 
> If I understand ExternalFile could benefit from using the 
> IStreamIterator interface instead of RESPONSE.write?
> For instance, for someone that don't want to store blobs
> in the database temporarily :-)

Yup, that is what it is for.  Chris has released a FileCacheManager 
which does this for objects which *are* stored in the ZODB;  I think 
OFS.Image.File does try to work with the FileCacheManager on that.

FileCacheManager is available at:

   http://www.dataflake.org/software/filecachemanager/

with CVS at:

   http://cvs.zope.org/Products/FileCacheManager/

Tres.
-- 
===============================================================
Tres Seaver                                tseaver at zope.com
Zope Corporation      "Zope Dealers"       http://www.zope.com


More information about the Zope-Dev mailing list