[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