All the storage solutions we have seen so far have one thing in common: They all use the publishing engine of Zope. Actually, they have one more thing in common, which is the storage of the binary content on the filesystem. But this behavior is shared by the following solution too. So what is different then?
Usually, the ZServer of Zope—responsible for handling the web traffic—is not exposed to the Internet directly, but is proxied by a dedicated web server such as Apache, Ngnix, or lighttpd. The approach of the following section takes this fact into account. It hooks into the proxy and with certain control flags in the request it catches the binary data, stores it on the filesystem, and passes on a key to the CMS. This key is later used for identification of the file if it is requested for download.
There is another solution that works with the publisher hook technology: WSGI (Web Server Gateway Interface). This is a Python standard for combining middleware components and...