package water.api; import water.JettyHTTPD; import water.Key; import water.fvec.UploadFileVec; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.InputStream; /** */ public class PostFileServlet extends HttpServlet { @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) { String uri = JettyHTTPD.getDecodedUri(request); try { String destination_frame = request.getParameter("destination_frame"); if (destination_frame == null) { destination_frame = "upload" + Key.rand(); } // // Here is an example of how to upload a file from the command line. // // curl -v -F "file=@allyears2k_headers.zip" "http://localhost:54321/3/PostFile.bin?destination_frame=a.zip" // // JSON Payload returned is: // { "destination_frame": "key_name", "total_bytes": nnn } // InputStream is = JettyHTTPD.extractPartInputStream(request, response); if (is == null) { return; } UploadFileVec.ReadPutStats stats = new UploadFileVec.ReadPutStats(); UploadFileVec.readPut(destination_frame, is, stats); String responsePayload = "{ " + "\"destination_frame\": \"" + destination_frame + "\", " + "\"total_bytes\": " + stats.total_bytes + " " + "}\n"; response.setContentType("application/json"); response.getWriter().write(responsePayload); } catch (Exception e) { JettyHTTPD.sendErrorResponse(response, e, uri); } finally { JettyHTTPD.logRequest("POST", request, response); } } }