【发布时间】:2018-02-28 08:43:29
【问题描述】:
我正在尝试实现一个 REST 服务(甚至是单个 Servlet),它可以让我快速“预览”传入文件(其中包含单个文件的多部分请求)。
这个想法是解析并在数据库中存储进入服务的潜在巨大文件的前几行。
我面临的问题是 Spring @RestController(在 Tomcat 上)在服务器接收到整个请求并且 MultipartFile 已经存储在文件系统上之后运行。
我设法实现了一些与纯 Servlet 实现一起工作的东西(直接从 HttpServletRequest 读取多部分请求)但是......然后我需要手动完成所有的多部分解析工作。我尝试使用 commons fileupload (http://commons.apache.org/proper/commons-fileupload/) 但它也会在文件系统上缓存文件,所以当我调用时:
List<FileItem> uploads = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(request);
all freezes util 整个文件上传到服务器。
关于如何处理这个问题的任何建议 - 如果可能的话,最好在 Tomcat 和 @RestController 上。
【问题讨论】:
-
如果您对我的回答满意,请告诉我,如果不满意,我会很好奇它有什么问题。
-
看起来不错@Z4,谢谢。我没有测试它(所以我不确定),因为我们选择以稍微不同的方式实现它,将文件拆分成更小的块(resumablejs.com),因为它允许更大的可扩展性和 AWS S3也支持它;)
标签: java spring rest tomcat servlet-3.0