[Zope] Using Zope to manage and serve large files

Heimo Laukkanen huima at iki.fi
Fri Oct 31 16:47:36 EST 2003

Often when my customers have got used to Zope and especially Plone as 
the UI to manage their website, questions go to using Zope and Plone for 
document management in intranet. It is old story that we all know how 
Zope sucks while serving large files compared to Apache. Serving large 
files from filesystem with Apache however takes out the whole point of 
using Zope - security mechanism etc.

Has anyone achieved to combine Zope and Apache/php to serve and manage 
large files in a way that allows metadata and security of the files to 
be managed in Zope, but actual serving happens from Apache so that 
ZServer does not hog memory and processor.

I thought about the possibility to integrate Apache/php and Zope via a 
database and tokens that are passed from Zope to Apache. The scenario 
could be following.

1) Apache and Zope are serving data from the same domain. Zope could be 
www.myfoobar.com and Apache could serve download.myfoobar.com

2) within the portal I would have a portal_external_storage_tool that 
defines the configuration and methods for storing and serving data 
outside Zope, including the database that is shared

3) Content types are own content types based on Archetypes and include 
logic for handing over the download to Apache

4) When user within the portal wants to download a file, the view / 
download function of the content type ( that is protected with Zope 
security machinery ) writes into the databse a token based on user, 
time, file or so.

5) User is transparently directed to the application in the download 
host to download the file. Token would be passed within the url

6) Download application checks that the token is valid for that file and 
that time - and starts serving data to the client.

Has anyone done anything similar - or do you have other ideas on how to 
implement such?


More information about the Zope mailing list