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