Yeah, my bad. I noticed that after I sent the link out. I may have been thinking about the netty4 component but will refrain from comment as I don't know if it does what you're looking for. But something must as your request doesn't seem that unusual.
Brad On Sun, Aug 21, 2016 at 11:39 AM, Jonas Koperdraat <jo...@jonaskoperdraat.nl > wrote: > Brad, thank you for the suggestion. However, the documentation of > netty4-http states: "Notice Netty4 HTTP reads the entire stream into > memory using io.netty.handler.codec.http.HttpObjectAggregator to build > the entire full http message.", which is exactly what I don't want as > the application is supposed to handle uploads of multiple Gbs > simultaneously. > > Kind regards, > > Jonas > > > > On Sun, Aug 21, 2016 at 2:01 AM, Brad Johnson > <brad.john...@mediadriver.com> wrote: > > Perhaps the netty component would be better for this but I don't have a > lot > > of experience with it. It's just my understanding is that it really > shines > > for this type of streaming operation. > > > > http://camel.apache.org/netty4-http.html > > > > Brad > > > > On Sat, Aug 20, 2016 at 6:44 AM, Jonas Koperdraat < > jo...@jonaskoperdraat.nl> > > wrote: > > > >> Hi, > >> > >> I am trying to process a multipart/form-data upload in a streaming > >> manner. We are using camel-servlet and camel-rest (2.17.0) to route > >> REST paths to Spring beans for processing the request. However, with > >> anything that I have tried, I only get to the Spring bean after the > >> entire request has been recieved, including the entire multipart > >> message. > >> > >> I would like to be able to process the uploaded file without it being > >> temporarily stored in memory or on disk as our application will need > >> to be able to process very large uploads simultaneously. I can > >> accomplish this when implementing a HttpRequestServlet and using > >> Apache's commons-fileupload > >> (https://commons.apache.org/proper/commons-fileupload/streaming.html), > >> but I'm having less luck when using Camel to route REST paths to our > >> beans. > >> > >> We define our rest paths like so: > >> > >> rest("upload") > >> .post() > >> .route() > >> .bean(UploadHandler.class, "handleUpload"); > >> > >> Explicitly adding noStreamCaching() to the route doesn't seem to > >> change anything (which makes sense, given that the default behaviour > >> as of Camel 2.0 is not to cache streams). > >> > >> Some of the options i've tried: > >> * Not using camel-rest, but directly route from camel-servlet > >> * Not using .bean, but .to > >> * Using .process > >> * Using camel-jetty > >> > >> But each attempt had the same effect; the entire request had to be > >> received (and presumably processed by Camel into an Exchange object) > >> before I could start processing it in my bean. > >> > >> Is it possible to use Camel to route an HTTP POST request to a Spring > >> bean in such a way that I can the process it in a streaming manner? > >> And if so, how? > >> > >> Any help is greatly appreciated. > >> > >> Kind regards, > >> > >> Jonas Koperdraat > >> >