【发布时间】:2016-06-27 04:57:26
【问题描述】:
我正在使用clj-http 进行多部分文件上传。我想知道是否有一种方法可以跟踪文件上传的进度。也许,一些函数会定期调用,到目前为止已经上传了多少文件?
【问题讨论】:
标签: clojure multipart clj-http
我正在使用clj-http 进行多部分文件上传。我想知道是否有一种方法可以跟踪文件上传的进度。也许,一些函数会定期调用,到目前为止已经上传了多少文件?
【问题讨论】:
标签: clojure multipart clj-http
clj-http 在底层使用 Apache HTTP 客户端,因此您可以重用 the answer to another question 中提供的解决方案。然而,这并不容易。
链接答案中提供的代码提供了HttpEntity 的增强实现。 clj-http 目前doesn't support providing your own instance of HttpEntity as your request body.
你有两个选择:
向 clj-http 提供拉取请求,因此它支持提供 HttpEntity 的实例作为 :body 值(例如,通过添加另一个 cond 分支检查 HttpEntity 值或通过使 @987654329 @ 多方法,因此您可以将其扩展为 HttpEntity)。
提供与上述FileEntity 和OutputStreamProgress 类似的逻辑,但在org.apache.http.entity.mime.content.ContentBody 的实现中。 clj-http 支持将它们作为多部分附件的值提供。这里的缺点是它会跟踪每个附件的进度,而不是整个请求。
【讨论】: