使用Jersey / JAX-RS我有一个get处理程序,其中包含将大文件复制到另一个位置的代码。我希望能够转到URL并能够看到复制的当前状态(即已过去的时间)。我该如何做到这一点?
答案 0 :(得分:0)
在哪一边?发件人或收件人?
发件人可以公开链接或其他内容,作为请求的一部分。
你可以说有点像
POST接收器/ foo /传入
<incoming-foo>
<link rel="status" uri="sender/foo/abc/status">
</incoming-foo>
接收者可能'201 Created'或'303 See Other'发送者到URI接收者/ foo / 1
此时,
GET receiver / foo / 1
可能只是返回提供的状态链接,或将其嵌入表示中:
<foo>
<status>incoming</status>
<link rel="status" href="sender/foo/abc/status" />
</foo>
GET sender / foo / abc / status
此时可能会返回“待定”或“排队”或类似的事情。
...
然后,发件人可以自由
PUT receiver / foo / 1
<foo>
<content>...</content>
</foo>
在PUT期间,对服务的异步GET仍然可以从原始服务获取状态,原始服务现在可以“传输”或包括字节/总数等。
答案 1 :(得分:0)
如果我理解正确,我会假设,因为它是一个长时间运行的操作,初始POST返回202,使用Location标头或内容正文中的链接到复制操作的状态页面将是好方法。然后,客户端可以定期获取状态URL,当服务器完成复制时,GET可以使用303或某种机制返回链接以找到新创建的文件。
希望有所帮助!