Re: [Zope-CMF] caching policy manager
On Friday 15 September 2006 11:27, Dieter Maurer wrote: > >Dieter, are you saying that it's fixed somwhere in SVN or is it in > >your "private" repository? > > In our private repository. would you care to attach your "patch" to http://www.zope.org/Collectors/CMF/454 ? I believe it will be enormously useful for others who are trying to use CMF framework for things that are not HTML :) For future references: For now I've deployed workaround - Apache adds missing headers to files that are in a list of known *binary* files (.doc, .xls, .pdf, .ppt, etc.) SetEnvIf Request_URI "\.(xls|doc|ppt|mpp|pdf|vsd) (/download)*$" BINARY_DATA Header add Cache-Control "no-cache" env=BINARY_DATA Header add Pragma "no-cache" env=BINARY_DATA As a next step I'll be applying Dieter's changes and if everything is fine - discard the ugly workaround. -- Dmitry Makovey Web Systems Administrator Athabasca University (780) 675-6245 pgpEXLLkznUEG.pgp Description: PGP signature ___ Zope-CMF maillist - Zope-CMF@lists.zope.org http://mail.zope.org/mailman/listinfo/zope-cmf See http://collector.zope.org/CMF for bug reports and feature requests
Re: [Zope-CMF] caching policy manager
Dmitry S. Makovey wrote at 2006-9-15 09:04 -0600: > ... >> I have defined CMF-aware ZODB object types. The one for "File" >> looks like this: >> >> # DM 2005-11-02: added >> """ CMF 'File' variant (CMF Cache Policy Manager aware)""" >...skip... > >Dieter, are you saying that it's fixed somwhere in SVN or is it in >your "private" repository? In our private repository. -- Dieter ___ Zope-CMF maillist - Zope-CMF@lists.zope.org http://mail.zope.org/mailman/listinfo/zope-cmf See http://collector.zope.org/CMF for bug reports and feature requests
Re: [Zope-CMF] caching policy manager
On Wednesday 13 September 2006 11:32, Dieter Maurer wrote: > Jens Vagelpohl wrote at 2006-9-13 09:15 +0200: > > ... > >It is a long-standing bug that the CMFDefault File index_html (and > >download, which is obsolete in newer CMF versions) simply defers > > to index_html from OFS.File. That one doesn't know anything about > > Cache Policy Managers, it only deals with the Zope ZCacheable > > cache manager mechanism. > > I have defined CMF-aware ZODB object types. The one for "File" > looks like this: > > # DM 2005-11-02: added > """ CMF 'File' variant (CMF Cache Policy Manager aware)""" ...skip... Dieter, are you saying that it's fixed somwhere in SVN or is it in your "private" repository? -- Dmitry Makovey Web Systems Administrator Athabasca University (780) 675-6245 pgpTvj1PYTwMb.pgp Description: PGP signature ___ Zope-CMF maillist - Zope-CMF@lists.zope.org http://mail.zope.org/mailman/listinfo/zope-cmf See http://collector.zope.org/CMF for bug reports and feature requests
Re: [Zope-CMF] caching policy manager
On Wednesday 13 September 2006 01:15, Jens Vagelpohl wrote: > If you could, please file a bug report at http://www.zope.org/ > Collectors/CMF/. All that needs to be done is to override > index_html (which I believe was never done because the > implementation in OFS.File is quite a beast - it was much easier to > just reuse it). Done: http://www.zope.org/Collectors/CMF/454/collector_issue_contents -- Dmitry Makovey Web Systems Administrator Athabasca University (780) 675-6245 pgpPUBpnQZZDN.pgp Description: PGP signature ___ Zope-CMF maillist - Zope-CMF@lists.zope.org http://mail.zope.org/mailman/listinfo/zope-cmf See http://collector.zope.org/CMF for bug reports and feature requests
Re: [Zope-CMF] caching policy manager
Jens Vagelpohl wrote at 2006-9-13 09:15 +0200: > ... >It is a long-standing bug that the CMFDefault File index_html (and >download, which is obsolete in newer CMF versions) simply defers to >index_html from OFS.File. That one doesn't know anything about Cache >Policy Managers, it only deals with the Zope ZCacheable cache manager >mechanism. I have defined CMF-aware ZODB object types. The one for "File" looks like this: # DM 2005-11-02: added """ CMF 'File' variant (CMF Cache Policy Manager aware)""" from OFS.Image import File, manage_addFileForm, cookId from utils import _setCacheHeaders, _ViewEmulator class CMFFile(File): '''CMF cache policy manager aware file.''' meta_type = 'CPM aware File' def index_html(self, REQUEST, RESPONSE): ' ' r = File.index_html(self, REQUEST, RESPONSE) if self.ZCacheable_getManager() is None: # not none cache manager already taken care of _setCacheHeaders(self._getCPMCachingWrapper(), extra_context={}) return r # DM 2006-05-17: more modular CPM caching def _getCPMCachingWrapper(self): return _ViewEmulator().__of__(self) # essentially a copy of "OFS.Image.manage_addFile" -- we should probably # use "ReuseUtils". def manage_addFile(self,id,file='',title='',precondition='', content_type='', REQUEST=None): """Add a new File object. Creates a new File object 'id' with the contents of 'file'""" id=str(id) title=str(title) content_type=str(content_type) precondition=str(precondition) id, title = cookId(id, title, file) self=self.this() # First, we create the file without data: self._setObject(id, CMFFile(id,title,'',content_type, precondition)) # Now we "upload" the data. By doing this in two steps, we # can use a database trick to make the upload more efficient. if file: self._getOb(id).manage_upload(file) if content_type: self._getOb(id).content_type=content_type if REQUEST is not None: REQUEST['RESPONSE'].redirect(self.absolute_url()+'/manage_main') def initialize(context): context.registerClass( CMFFile, permission='Add Documents, Images, and Files', constructors=(manage_addFileForm, manage_addFile), ) -- Dieter ___ Zope-CMF maillist - Zope-CMF@lists.zope.org http://mail.zope.org/mailman/listinfo/zope-cmf See http://collector.zope.org/CMF for bug reports and feature requests
Re: [Zope-CMF] caching policy manager
On Wed, Sep 13, 2006 at 09:15:14AM +0200, Jens Vagelpohl wrote: | It is a long-standing bug that the CMFDefault File index_html (and | download, which is obsolete in newer CMF versions) simply defers to | index_html from OFS.File. That one doesn't know anything about Cache | Policy Managers, it only deals with the Zope ZCacheable cache manager | mechanism. | | If you could, please file a bug report at http://www.zope.org/ | Collectors/CMF/. All that needs to be done is to override index_html | (which I believe was never done because the implementation in | OFS.File is quite a beast - it was much easier to just reuse it). As a workaround you can install the PolicyHTTPCacheManager product and associate your file objects with it. The PolicyHTTPCacheManager provides the ZCacheable mechanism, but when invoked defers to the Caching Policy Manager. -- Sidnei da Silva Enfold Systemshttp://enfoldsystems.com Fax +1 832 201 8856 Office +1 713 942 2377 Ext 214 ___ Zope-CMF maillist - Zope-CMF@lists.zope.org http://mail.zope.org/mailman/listinfo/zope-cmf See http://collector.zope.org/CMF for bug reports and feature requests
Re: [Zope-CMF] caching policy manager
Oh yes. I always forget that I run PolicyHTTPCacheManager ;-) http://dev.plone.org/collective/browser/CacheFu/trunk/ PolicyHTTPCacheManager Stefan On 13. Sep 2006, at 10:24, Jens Vagelpohl wrote: On 13 Sep 2006, at 10:04, Stefan H. Holek wrote: You don't want to cache views for Files and Images. I use this for "predicate": python: not view and object.portal_type=='File' I don't think this will help anything. The CPM never even fires, unfortunately. jens -- Anything that happens, happens. --Douglas Adams ___ Zope-CMF maillist - Zope-CMF@lists.zope.org http://mail.zope.org/mailman/listinfo/zope-cmf See http://collector.zope.org/CMF for bug reports and feature requests
Re: [Zope-CMF] caching policy manager
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 On 13 Sep 2006, at 10:04, Stefan H. Holek wrote: You don't want to cache views for Files and Images. I use this for "predicate": python: not view and object.portal_type=='File' I don't think this will help anything. The CPM never even fires, unfortunately. jens -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.1 (Darwin) iD8DBQFFB8BORAx5nvEhZLIRAv25AKCuxY0dGNPMUK4jPBRfnCZz/2hwRQCeK47D UpSfIpJuHEpfzF9YJwYLf2g= =JWy1 -END PGP SIGNATURE- ___ Zope-CMF maillist - Zope-CMF@lists.zope.org http://mail.zope.org/mailman/listinfo/zope-cmf See http://collector.zope.org/CMF for bug reports and feature requests
Re: [Zope-CMF] caching policy manager
You don't want to cache views for Files and Images. I use this for "predicate": python: not view and object.portal_type=='File' Stefan On 13. Sep 2006, at 01:30, Dmitry S. Makovey wrote: Playing with CPM I've discovered that if I put a policy like: id: Files Predicate: python:content.portal_type == "File" Mod. time: content/modified Max age: 1 with all "noXXX" checked, I have weird behaviour: whenever I request '/file_view' method on file objects - everything works as expected, as soon as I use '/download' all the settings are discarded by CPM. -- It doesn't necessarily do it in chronological order, though. --Douglas Adams ___ Zope-CMF maillist - Zope-CMF@lists.zope.org http://mail.zope.org/mailman/listinfo/zope-cmf See http://collector.zope.org/CMF for bug reports and feature requests
Re: [Zope-CMF] caching policy manager
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 On 13 Sep 2006, at 01:30, Dmitry S. Makovey wrote: whenever I request '/file_view' method on file objects - everything works as expected, as soon as I use '/download' all the settings are discarded by CPM. Well, the settings are not "discarded". The Cache Policy Manager just does not get a chance to apply them. It is a long-standing bug that the CMFDefault File index_html (and download, which is obsolete in newer CMF versions) simply defers to index_html from OFS.File. That one doesn't know anything about Cache Policy Managers, it only deals with the Zope ZCacheable cache manager mechanism. If you could, please file a bug report at http://www.zope.org/ Collectors/CMF/. All that needs to be done is to override index_html (which I believe was never done because the implementation in OFS.File is quite a beast - it was much easier to just reuse it). jens -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.1 (Darwin) iD8DBQFFB7ADRAx5nvEhZLIRAp6vAJoDJy/ndoEh7Gu7EQCjIaO+e/ms4ACeIdJ6 HVDr49sNSs0qKgoIHDtKwM8= =jESW -END PGP SIGNATURE- ___ Zope-CMF maillist - Zope-CMF@lists.zope.org http://mail.zope.org/mailman/listinfo/zope-cmf See http://collector.zope.org/CMF for bug reports and feature requests
[Zope-CMF] caching policy manager
Playing with CPM I've discovered that if I put a policy like: id: Files Predicate: python:content.portal_type == "File" Mod. time: content/modified Max age: 1 with all "noXXX" checked, I have weird behaviour: whenever I request '/file_view' method on file objects - everything works as expected, as soon as I use '/download' all the settings are discarded by CPM. Is it something I miss or is it a bug? (BTW I'm using older Plone 2.0.5 but just tested it with 2.5 and see same problem) Here are snippets of what I'm talking about: First the "ignore": (dimon2:~/tmp/2) dimon% wget --no-cache -S http://mysite.com/demo/Members/dimon/1800telephone.xls/download --17:21:47-- http://mysite.com/demo/Members/dimon/1800telephone.xls/download => `download' Resolving mysite.com... 10.10.10.1 Connecting to mysite.com|10.10.10.1|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Date: Tue, 12 Sep 2006 23:21:47 GMT Server: Zope/(Zope 2.7.8-final, python 2.3.4, linux2) ZServer/1.1 Plone/2.0.5 Content-Length: 45568 Content-Disposition: attachment; filename=1800telephone.xls Accept-Ranges: bytes Last-Modified: Tue, 12 Sep 2006 23:19:36 GMT Content-Type: application/vnd.ms-excel X-Cache: MISS from 10.10.10.1 Connection: close Length: 45,568 (44K) [application/vnd.ms-excel] Now everything is fine here: (dimon2:~/tmp/2) dimon% wget --no-cache -S http://mysite.com/demo/Members/dimon/1800telephone.xls/file_view --17:21:24-- http://mysite.com/demo/Members/dimon/1800telephone.xls/file_view => `file_view.1' Resolving mysite.com... 10.10.10.1 Connecting to mysite.com|10.10.10.1|:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Date: Tue, 12 Sep 2006 23:21:24 GMT Server: Zope/(Zope 2.7.8-final, python 2.3.4, linux2) ZServer/1.1 Plone/2.0.5 Content-Length: 19549 Content-Language: Expires: Tue, 12 Sep 2006 23:21:25 GMT Last-Modified: Tue, 12 Sep 2006 22:40:46 GMT Pragma: no-cache Cache-Control: max-age=1, no-cache, no-store, must-revalidate Content-Type: text/html;charset=utf-8 X-Cache: MISS from 10.10.10.1 Connection: close Length: 19,549 (19K) [text/html] -- Dmitry Makovey Web Systems Administrator Athabasca University (780) 675-6245 pgpEx9N33Haft.pgp Description: PGP signature ___ Zope-CMF maillist - Zope-CMF@lists.zope.org http://mail.zope.org/mailman/listinfo/zope-cmf See http://collector.zope.org/CMF for bug reports and feature requests