[Zope-dev] Re: serving BLOBs
Paul Winkler
pw_lists at slinkp.com
Tue Oct 12 03:41:30 EDT 2004
On Mon, Oct 11, 2004 at 07:09:16PM +0200, 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 :-)
It's pretty easy to do. I have quick hacky patches for
LocalFS-1.2-andreas, ExtFile (not ExternalFile), ExternalFolder, and
CMFCore.FSFile, all here:
http://www.slinkp.com/code/zopestuff/blobnotes
Also some quick stupid benchmarks there.
IIRC, Andreas incorporated such a patch into LocalFS-1.3-andreas
or some such release.
--
Paul Winkler
http://www.slinkp.com
More information about the Zope-Dev
mailing list