Great! I've just tested it and it seems to work very well, I am getting the
304 that I was looking for. Now many resources are no longer sent to the
client saving bandwidth, I think many web2py applications will appreciate
this speed up.

@Niphlod, the header you have mentioned will force to keep the same file
even if I update it, this is not the behaviour that I need in my app.

One more think about the download function.
Do we support parallel requests? Namely, I have recently read that the
default web2py approach is to serializes parallel ajax requests due to the
session lock. If that is true for download as well, I think we should add
an session.forget somwhere.
What do you think?


 Paolo


2013/2/4 Massimo Di Pierro <massimo.dipie...@gmail.com>

> In trunk!
>
>
> On Monday, 4 February 2013 15:05:05 UTC-6, Niphlod wrote:
>>
>> Uhm, I was just thinking to return a string instead of the open stream.
>> attached the patch (some refactoring bits added)
>>
>> @Paolo: turns out that wiki has it's own "download()" function to handle
>> files ..... in order to return cache headers you should do:
>>
>> def yourwikiindex():
>>     zero = request.args(0) or 'index'
>>     if zero and zero.isdigit():
>>         response.headers['Cache-**Control'] = 'max-age=315360000'
>>         response.headers['Expires'] = 'Thu, 31 Dec 2037 23:59:59 GMT'
>>     return auth.wiki()
>>
>>
>>
>> On Monday, February 4, 2013 7:34:58 PM UTC+1, Massimo Di Pierro wrote:
>>>
>>> Honestly I would like to refactor all this logic in web2py. It was
>>> already done for web3py:
>>>
>>> https://github.com/mdipierro/**web3py/blob/master/web3py/**stream.py<https://github.com/mdipierro/web3py/blob/master/web3py/stream.py>
>>>
>>> Anyway, if you can help fix it in web2py, we can merge everything later
>>>
>>> Massimo
>>>
>>> On Monday, 4 February 2013 11:46:03 UTC-6, Paolo valleri wrote:
>>>>
>>>> I thought the same about postponing the opening of the file. Moreover,
>>>> just after globals:344 in the stream(...) function I have added
>>>>
>>>>         if isinstance(stream, file):
>>>>             stream_file_or_304_or_206(stre**am.name<http://stream.name>
>>>> ,
>>>>                               **        chunk_size=chunk_size,
>>>>                               **        request=request,
>>>>                               **        headers=headers,
>>>>                               **        status=self.status)
>>>>
>>>> and finally I got a 304 :-). As a result we are on the right direction,
>>>> although there is no reason to open the file and take only its name. We
>>>> need definitely something better
>>>>
>>>>
>>>>
>>>>  Paolo
>>>>
>>>>
>>>> 2013/2/4 Niphlod <nip...@gmail.com>
>>>>
>>>>>
>>>>>
>>>>> On Monday, February 4, 2013 3:38:29 PM UTC+1, Paolo valleri wrote:
>>>>>>
>>>>>> Hi Niphlod, I am still trying to understand why the wiki uploads are
>>>>>> not returned as 304.
>>>>>> The function in charged to return either 200 or 304 is
>>>>>> stream_file_or_304_or_206 in streamer.py. Moreover, this function is only
>>>>>> called in globals.py inside stream(...). Please have a look at
>>>>>> globals.py:344, In order to be called the parameter 'stream' must be a
>>>>>> string but with 'common' downloads the stream is an open file. This is 
>>>>>> also
>>>>>> documented by the comment in dal.py:9096. is what I've written correct ?
>>>>>>
>>>>>
>>>>> seems so, but in this case I think it should be patched (as soon as
>>>>> I'll get home).
>>>>>
>>>>> For downloads that on the table are merely strings (i.e. on the table
>>>>> there's the path to the actual file, usually in the "uploads" folder) the
>>>>> correct way should be to "defer" the opening of the file down the line to
>>>>> gluon.streamer.
>>>>> A lot of logic has been added to store files on pyfilesystem (and
>>>>> without much tests on that, I hope I won't brake anything) but I think 
>>>>> that
>>>>> for default "upload" file the logic needs to be revisited.
>>>>>
>>>>>  --
>>>>>
>>>>> ---
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "web2py-users" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>>> an email to web2py+un...@googlegroups.com.
>>>>> For more options, visit 
>>>>> https://groups.google.com/**groups/opt_out<https://groups.google.com/groups/opt_out>
>>>>> .
>>>>>
>>>>>
>>>>>
>>>>
>>>>  --
>
> ---
> You received this message because you are subscribed to the Google Groups
> "web2py-users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to web2py+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to