clj-http:跟踪多部分文件上传的进度

时间:2016-03-11 19:57:01

标签: clojure multipart clj-http

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

1 个答案:

答案 0 :(得分:2)

clj-http使用下面的Apache HTTP Client,因此您可以重用the answer to another question中提供的解决方案。但是,这不容易。

链接答案中显示的代码提供了HttpEntity的增强实现。 clj-http目前为doesn't support providing your own instance of HttpEntity as your request body

您有两种选择:

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

  2. 提供与上述HttpEntityFileEntity类似的逻辑,但是在OutputStreamProgress的实现中。 clj-http支持将它们作为多部分附件的值提供。这里的缺点是它会跟踪每个附件的进度,而不是整个请求。