[Seaside] WAStreamingResponse or WAComboResponse for a single callback?

Sven Van Caekenberghe sven at stfx.eu
Fri Jan 6 23:22:01 UTC 2017


Jupiter,

What is large for you ? 

I think it is not easy to prevent Seaside from taking everything into memory.

Zinc can do what you want, using a ZnStreamingEntity plugged into a ZnResponse, if that is an option for you (you could run an extra server in the same image on a different port, or you could play with prefixes).

Have a look at ZnStaticFileServerDelegate>>#responseForFile:fromRequest:

This method does more than just plain serving the file, but you should be able to see what you want.

Sven

> On 6 Jan 2017, at 20:41, Jupiter Jones <jupiter.jones at mail.com> wrote:
> 
> Hi Petr,
> 
> Thanks for the link, however, it’s large downloads via the image I’m looking to solve.
> 
> I know it’s not ideal to serve large files via the image, however, in this case I need to accommodate them.
> 
> I’ll keep looking.
> 
> Thanks again for your response.
> 
> Cheers,
> 
> J
> 
>> On 6 Jan 2017, at 11:48 am, Petr Fischer <petr.fischer at me.com> wrote:
>> 
>> Some blog post about large uploads:
>> http://jbrichau.github.io/blog/large-file-upload-in-seaside
>> 
>> pf
>> 
>> 
>>> Hi Seasiders,
>>> 
>>> I have a callback that downloads a file which works perfectly until the file size becomes to large and it runs out of memory.
>>> 
>>> My response method looks like this:
>>> 
>>> response
>>>   attachmentWithFileName: target name;
>>>   contentType: target mimeType;
>>>   binary;
>>>   doNotCache.
>>> target
>>>   readOnlyFileDo: [ :file | 
>>>     [ file atEnd ]
>>>       whileFalse: [ 
>>>         | byteArray |
>>>         byteArray := ByteArray new.
>>>         file read: 4096 into: byteArray.
>>>         response stream nextPutAll: byteArray.
>>>         response flush ] ]
>>> 
>>> I can see that a WABufferedResponse does nothing with #flush so I’m wanting to use either the WAComboResponse or the WAStreamingResponse for this callback. However, I can’t see how to configure a single response to use either of these classes.
>>> 
>>> From what I can see, it looks like the response is configured in the server adaptor. Since this single download callback is the only request that needs to stream it’s response, is there a way to use a WACombeResponse or a WAStreaming response for one particular callback?
>>> 
>>> Any advice would be greatly appreciated.
>>> 
>>> Cheers,
>>> 
>>> Jupiter
>>> _______________________________________________
>>> seaside mailing list
>>> seaside at lists.squeakfoundation.org
>>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>> _______________________________________________
>> seaside mailing list
>> seaside at lists.squeakfoundation.org
>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
> 
> _______________________________________________
> seaside mailing list
> seaside at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside



More information about the seaside mailing list