我正在使用clj-http进行多部分文件上传。我想知道是否有一种方法可以跟踪文件上传的进度。也许,到目前为止,已经上传了多少文件的某些函数会被定期调用?
答案 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。
您有两种选择:
向clj-http提供拉取请求,因此它支持提供HttpEntity
的实例作为:body
值(例如,通过添加另一个cond
分支检查{{1值}或将HttpEntity
设为多方法,以便为wrap-input-coercion
扩展它。
提供与上述HttpEntity
和FileEntity
类似的逻辑,但是在OutputStreamProgress
的实现中。 clj-http支持将它们作为多部分附件的值提供。这里的缺点是它会跟踪每个附件的进度,而不是整个请求。