小编tob*_*i.b的帖子

泽西岛多部分流式传输,而接收服务器上没有磁盘缓冲

我正在尝试通过HTTP将(大)文件流式传输到数据库中。我正在使用Tomcat和Jersey作为Webframework。我注意到,如果我将文件发布到资源中,则该文件首先在磁盘上(在temp \ MIME * .tmp}中进行缓冲,然后再通过doPOST方法进行处理。

这确实是不希望的行为,因为它会使磁盘I / O翻倍,并且还会导致UX出现问题,因为如果浏览器已经完成上传操作,则用户需要等待几分钟(当然取决于文件大小),直到他得到HTTP响应。

我知道这可能不是大型文件上传的最佳实现(因为您甚至没有任何恢复功能),但要求也是如此。:/

所以我的问题是,是否有任何方法可以禁用MULTIPART POST的(磁盘)缓冲。内存缓冲显然太昂贵了,但是我真的看不出是否需要磁盘缓冲吗?(请解释)像YouTube这样的大型网站如何处理这种情况?或者如果发送了文件,是否至少有机会立即向用户提供反馈?(应该很糟糕,因为可能仍然有类似SQLException的东西)

tomcat web-services multipartform-data stream jersey

6
推荐指数
2
解决办法
2777
查看次数