我正在尝试通过 HTTP 将(大)文件流式传输到数据库中。我使用 Tomcat 和 Jersey 作为 Web 框架。我注意到,如果我 POST 一个文件到我的资源,该文件首先在磁盘上缓冲(在 temp\MIME*.tmp} 中,然后在我的 doPOST 方法中处理它。
这确实是一种不受欢迎的行为,因为它使磁盘 I/O 加倍,并且还导致了一些糟糕的 UX,因为如果浏览器已经完成上传,用户需要等待几分钟(当然取决于文件大小)直到他得到HTTP 响应。
我知道这可能不是大文件上传的最佳实现(因为您甚至没有任何恢复功能),但要求也是如此。:/
所以我的问题是,是否有任何方法可以禁用 MULTIPART POST 的(磁盘)缓冲。内存缓冲显然太贵了,但我真的不认为需要磁盘缓冲吗?(请解释)像 YouTube 这样的大型网站如何处理这种情况?或者如果文件被发送,至少有机会给用户即时反馈?(应该是坏的,因为可能仍然有类似 SQLException 的东西)