1

我正在使用clj-http进行多部分文件上传。我想知道是否有一种方法可以跟踪文件上传的进度。也许,一些函数会定期调用,到目前为止已经上传了多少文件?

4

1 回答 1

2

clj-http 在下面使用 Apache HTTP 客户端,因此您可以重用另一个问题的答案中提供的解决方案。然而,这并不容易。

链接答案中提供的代码提供了增强的HttpEntity. clj-http 目前不支持提供您自己的实例HttpEntity作为您的请求正文

你有两个选择:

  1. 向 clj-http 提供一个拉取请求,以便它支持提供一个HttpEntity作为:body值的实例(例如,通过添加另一个cond分支检查HttpEntity值或通过创建wrap-input-coercion一个多方法以便您可以扩展它HttpEntity)。

  2. 提供与上述类似的逻辑,FileEntityOutputStreamProgress在您的org.apache.http.entity.mime.content.ContentBody. clj-http 支持将它们作为多部分附件的值提供。这里的缺点是它会跟踪每个附件的进度,而不是整个请求。

于 2016-03-11T20:56:58.070 回答