I could use some help from editors in revising the book. ;-)

On Nov 18, 6:46 pm, Clayton <[email protected]> wrote:
> Looks great to me. Can you perhaps also make change the book something
> like this?
>
> From:
>
> >> response.stream(file, chunk_size): when a controller returns it, web2py 
> >> streams the file content back to the client in blocks of size chunk_size.
>
> To:
>
> >> response.stream(file, chunk_size, request=request): when a controller 
> >> returns it, web2py streams the file content back to the client in blocks 
> >> of size chunk_size. request parameter is required to use the chunk start 
> >> in the HTTP header.
>
> Thank again for a fantastic product. We are currently retooling our
> entire server to use web2py.
>
> Clayton
>
> On Nov 18, 7:33 pm, mdipierro <[email protected]> wrote:
>
> > You are right. I was being stupid. I looked at it in a hurry and
> > indeed this is wrong. I think I fixed it in trunk. Please check it is
> > fixed all-right.
>
> > massimo
>
> > On Nov 18, 4:06 pm, Clayton <[email protected]> wrote:
>
> > > Ok, thanks for that. However, when I call response.stream(myfilename,
> > > request=request), it seems to stream it in 64K chunks, and tracing the
> > > code confirms it as far as I can see.
>
> > > I'm confused because despite passing in chunk_size as a parameter, it
> > > had no effect on the streaming. Also I'm not understanding the
> > > documentation then:
>
> > > >> response.stream(file, chunk_size): when a controller returns it, 
> > > >> web2py streams the file content back to the client in blocks of size 
> > > >> chunk_size.
>
> > > Does that mean that if file is a filename, then chunk_size is ignored?
> > > Why wouldn't it be passed in to the stream_file_or_304_or_206 call?
>
> > > Finally, the documentation doesn't seem entirely clear that if
> > > "request" is not passed in as a parameter, it won't stream correctly
> > > (or at least that's my experience... it always restarted from the
> > > beginning ignoring the http header range).
>
> > > Thanks,
>
> > > Clayton
>
> > > On Nov 18, 4:41 pm, mdipierro <[email protected]> wrote:
>
> > > > Not a bug.
>
> > > > chunk_size applies when you are returning a file-like object that
> > > > needs to be streamed. If you return a string, it is not streamed.
>
> > > > Massimo
>
> > > > On Nov 18, 3:04 pm, Clayton <[email protected]> wrote:
>
> > > > > The chunk_size seems to be ignored in response.stream
>
> > > > >     def stream(
> > > > >         self,
> > > > >         stream,
> > > > >         chunk_size = DEFAULT_CHUNK_SIZE,
> > > > >         request=None,
> > > > >         ):
> > > > >         """
> > > > >         if a controller function::
>
> > > > >             return response.stream(file, 100)
>
> > > > >         the file content will be streamed at 100 bytes at the time
> > > > >         """
>
> > > > >         if isinstance(stream, (str, unicode)):
> > > > >             stream_file_or_304_or_206(stream, request=request,
> > > > >                                       headers=self.headers) <<<< NOT
> > > > > PASSED IN TO stream_file_or_304_206!!
>
> > > > > Thanks,
>
> > > > > Clayton
>
>

Reply via email to