clj-http: отслеживание хода загрузки файла из нескольких частей
Я делаю загрузку файлов из нескольких частей, используя clj-http. Мне интересно, есть ли способ, которым я могу отслеживать ход загрузки файла. Может быть, какая-то функция, которая периодически вызывается с тем, сколько файлов было загружено до сих пор?
1 ответ
clj-http использует Apache HTTP Client, чтобы вы могли повторно использовать решение, представленное в ответе на другой вопрос. Однако это не может быть легко.
Код, представленный в связанном ответе, обеспечивает расширенную реализацию HttpEntity
, clj-http в настоящее время не поддерживает предоставление собственного экземпляра HttpEntity
как ваше тело запроса.
У вас есть два варианта:
Предоставьте пулл-запрос к clj-http, чтобы он поддерживал предоставление экземпляра
HttpEntity
как:body
значение (например, путем добавления другогоcond
проверка филиала наHttpEntity
значение или сделавwrap-input-coercion
мультиметод, чтобы вы могли расширить его дляHttpEntity
).Обеспечить логику, аналогичную приведенной выше
FileEntity
а такжеOutputStreamProgress
но в вашей реализацииorg.apache.http.entity.mime.content.ContentBody
, clj-http поддерживает предоставление их в качестве значений для составных вложений. Недостатком здесь является то, что он будет отслеживать прогресс по вложениям, а не по всему запросу.