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

Karsten Kusche karsten at heeg.de
Wed May 8 17:00:05 UTC 2019


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<mailto: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<mailto: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<mailto: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<mailto: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/ae5b7c3c/attachment-0001.html>


More information about the seaside mailing list