[Seaside] Upload large file - my results and questions
kuszinger at giscom.hu
Thu Jan 14 14:34:30 UTC 2016
I need to work out a big file uploader. Files could be around ~300Mb.
- OS: Linux kuszidell 4.3.3-2-ARCH #1 SMP PREEMPT Wed Dec 23 20:09:18
CET 2015 x86_64 GNU/Linux running Pharo
- Pharo4.0, Latest update: #40626
- Loaded config: KomHttpServer (HernanMoralesDurand.25)
- Loaded config: Seaside3 (topa:278)
- Seaside Adaptor: WAComancheAdaptor on 8080
- When working locally, even 153 MB file is uploaded in seconds.
- Pharo grows in memory with each upload (haven't seen any degradation
yet). This is also a situation when uloading locally (localhost:8080)
- Received file (ByteArray) is held in memory when receiving (checked
However, when running on the *final configuration*:
- IIS7.5 on Windows Server 2008R2 as reverse proxy with ARR and Rewrite
- VPN connection from IIS box to the Linux box with Pharo, see above
The following effects realized:
- Upload process goes well, no error. However, sometimes the resulting
file wouldn't appear in the target directory (??). No error in Pharo as
well. Disappears (hmm?).
- are there* any timeout settings* in Seaside and/or in Comanche?
Especially on transfers, etc. Session timeout could be short, if any... The
main difference between the local and final config/setup is the
network/transfer speed (VPN is very slow).
- Is there an *option for streaming directly the uploaded file* into a
*Uploading "software" is as easy as this:*
html form multipart;
html fileUpload callback: [ :value | self receiveFile: value ].
html submitButton: 'Upload' ].
| stream |
stream := (FileDirectory default directoryNamed: '/home/kuszi/tmp')
forceNewFileNamed: aFile fileName.
[ stream binary; nextPutAll: aFile rawContents ] ensure: [ stream close ]
Thanks and best regards
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the seaside