[Zope-dev] RFC: ETag support for zope.browserresource

Sidnei da Silva sidnei.da.silva at canonical.com
Tue Aug 10 15:49:47 EDT 2010


On Tue, Aug 10, 2010 at 12:42 PM, Marius Gedminas <marius at gedmin.as> wrote:
> How would you like that to be configured?
>
> Option #1:
>
>  <browser:resource/resourceDirectory etags="off" /> ?
>
> Option #2:
>
>  getMultiAdapter((resource, request), IETag).computeETag() ?
>
>  This is maybe a bit problematic, because the actual File object that
>  contains all the data--such as filename--doesn't implement any
>  interfaces.  And neither does FileResource.
>

So maybe Option #1?

>> I see that your implementation uses last-modified + size, which should
>> generally be fine. However if you're load-balancing across two
>> different servers and the timestamps don't match then the ETag is
>> useless.
>
> Would you prefer a sha1 checksum?

As a default? I'd say last-modified + size is OK.

>> On a completely different note, I see that the File object reads the
>> whole file into memory.
>
> And it does that twice for every request that results in a 200 response:
> once to auto-detect the content-type, the second time to return the
> actual data.

Ouch. That sounds pretty bad. I thought it kept the data in-memory
(didn't look close enough at the source).

-- Sidnei


More information about the Zope-Dev mailing list