[Seaside] [vwnc] Managing Large File Uploads in Seaside

Esteban Maringolo emaringolo at gmail.com
Wed May 8 17:21:58 UTC 2019


Hi Karsten,

I didn't think about an override and went subclassing directly (I'm not
keen/not used to method overrides), but your approach of having a threshold
seems like a good tradeoff to preserve the simplicity for small files.

What I couldn't find is whether the maximum request body size is enforced
with Seaside (I placed a few breakpoints around senders of
#requestBodyLimit without any luck).

Regards,

Esteban A. Maringolo


On Wed, May 8, 2019 at 1:59 PM Karsten Kusche <karsten at heeg.de> wrote:

> Hi Esteban,
>
> we have an override in SeasideResponder>>asSeasideFileStream: where we do
> something differently in „stream isExternalStream ifTrue:[…]“
>
> There we ask the stream for #fileName (returns a Filename object) and test
> the file size. That’s the file that contains the data that was uploaded. If
> the file’s size exceeds a certain threshold we return a subclass of WAFile
> that knows the file and not its contents.
>
> Kind Regards
> Karsten
>
> Georg Heeg eK
> Wallstraße 22
> 06366 Köthen
>
> Tel.: 03496/214328
> FAX: 03496/214712
> Amtsgericht Dortmund HRA 12812
>
>
> Am 8. Mai 2019 um 16:29:29, Esteban Maringolo (emaringolo at gmail.com)
> schrieb:
>
> I found that SiouX is effectively uploading the contents to an attachment
> file directory.
>
> Maybe there is a way to avoid instantiating a WAFile and use a
> WAExternalFile poiting to the file on disk, or simply using my custom
> SeasideResponder subclass.
>
> This won't save VW from reading the whole file into memory before saving
> it to disk (or will it?) but it certainly will only keep the reference
> during the request/response of SiouX, which will be garbage collected
> faster than anything on a Seaside Component.
>
> Regards,
>
> Esteban A. Maringolo
>
>
> On Wed, May 8, 2019 at 10:10 AM Esteban Maringolo <emaringolo at gmail.com>
> wrote:
>
>> Hi Felix,
>>
>> That is similar to what Johan proposes in his article, but the goal is to
>> achieve the same thing by using SiouX (VW's latest HTTP server) responders,
>> maybe using a chunked read/write approach (so there is no more than a
>> certain buffer in the object memory).
>>
>> Regards,
>>
>> Esteban A. Maringolo
>>
>>
>> On Wed, May 8, 2019 at 9:46 AM Félix Madrid <fmadrid at gmail.com> wrote:
>>
>>> Hi Esteban,
>>>
>>> Maybe this article (and project) from Nick Ager can help you:
>>>
>>> http://nickager.com/blog/2011/07/01/File-upload-using-Nginx-and-Seaside
>>>
>>> Cheers,
>>>
>>> Félix
>>>
>>> On Wed, May 8, 2019 at 2:39 PM Esteban Maringolo <emaringolo at gmail.com>
>>> wrote:
>>>
>>>> I'm trying to use the SiouX responder fortification to limit a large
>>>> file upload from blocking the whole image and/or filling its memory.
>>>>
>>>> Looking at the options I found there is a "save attachments as files",
>>>> which seems like a similar approach as the one proposed at <
>>>> https://jbrichau.github.io/blog/large-file-upload-in-seaside > using
>>>> NGINX or Apache, but apparently that option only works at NetHttpResponder,
>>>> but it's not applied in Seaside.
>>>>
>>>> Did anybody integrate this feature or a similar one with Seaside in VW?
>>>> (otherwise I'd have to do it myself).
>>>>
>>>> Regards!
>>>>
>>>> Esteban A. Maringolo
>>>>
>>>
>>> _______________________________________________
> seaside mailing list
> seaside at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/seaside/attachments/20190508/d5f4a0af/attachment.html>


More information about the seaside mailing list