java快速“预览”传入的多部分请求
我正在尝试实现一个REST服务(甚至是一个Servlet),它将允许我快速“预览”传入文件(包含单个文件的多部分请求)
其想法是解析并在DB中存储进入服务的潜在巨大文件的几行
我面临的问题是,Spring@RestController(在Tomcat上)是在服务器接收到整个请求后运行的,并且多部分文件已经存储在文件系统中
我设法实现了一些与纯Servlet实现(直接从HttpServletRequest读取多部分请求)一起工作的东西,但是。。。然后我需要手动完成所有的多部分解析。我尝试了commons fileupload(http://commons.apache.org/proper/commons-fileupload/),但它也在文件系统中缓存文件,所以当我调用:
List<FileItem> uploads = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(request);
所有文件都上传到服务器上
如果可能的话,最好是在Tomcat上和@RestController上,给出如何处理这个问题的建议
# 1 楼答案
我相信你使用commons fileupload的方法是正确的。你只需要使用"streaming" API。类似的方法也应该奏效:
通过这种方式,你可以以流的形式阅读这些部分,使用你需要的任何东西,然后丢弃其余的部分。FS上不会存储任何内容