Hello,
I'm looking into Vert.x 3 for a project that needs to support uploading large files (GBs) via a REST interface. I started with the highest level component, Vert.x-Web. I have a few questions regarding some limitations I've run into.
The payload will come via a POST or PUT. In the case of a POST, the file will be one attribute in a multipart form. I have set the BodyHandler handler on the route to receive the entire request body for now.
1) The payload should not be written to a local file system (no file uploads). I would like to stream the payload to a different system. BodyHandle buffers the entire body prior to routing handlers being called. Do I need to provide my own implementation of a steaming BodyHandler that would operate similar to Vert.x-Core's HttpServerRequest handlers?
2) I would like REST clients to use HTTP 100-Continue protocol to allow the server to verify the headers and authenticate the request before receiving the request body. I have not found where Vert.x-Web has this capability.
3) The multipart form attributes provided via HttpServerRequest::getFormAttribute() returns all attribute values as Strings regardless of the content type. For application/octet-stream types, the data gets corrupted due to the various character translations. Is it possible to have form attributes processed based on their content-type?
The Vert.x-Core component exposes lower level API's to control how HTTP requests are processed. Perhaps I would need to utilize that instead of Vert.x-Web. However, I did not see any server side processing for HTTP 100-Continue in Vert.x-Core.
Lastly, congrats to the team for getting v3 released. Nice work.
Nathan