2014-10-08 18 views
0

我有一个大的byte文件(日志文件),我想上传到服务器使用PUT请求。我选择PUT的原因仅仅是因为我可以使用它来创建新资源或更新现有资源。如何使用JAX-RS中的PUT请求更新大型附件的资源?

我的问题是如何处理服务器或网络中断发生在PUT请求期间的情况。 也就是说我有一个巨大的文件,在传输过程中发生网络故障。当网络恢复时,我不想开始整个上传。我将如何处理? 我正在使用JAX-RS API和RESTeasy实现。

+0

这基本上归结为:“在网络故障后如何恢复PUT到Servlet?” HTTP为PUT支持'100 continue',但我不确定这是否可以与JAX-RS实现一起使用。 – 2014-10-09 16:23:23

回答

0

有些人正在使用Content-Range标题来实现此目标,但许多人(如Mark Nottingham)声明这对于请求不合法。请阅读this answer的评论。

此外,此方案不支持JAX-RS。

如果你真的有破PUT请求的重复问题,我想简单地让客户切片文件:然后

PUT /logs/{id}/1 
PUT /logs/{id}/2 
PUT /logs/{id}/3 

GET /logs/{id}将返回所有成功提交片的聚集。