[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