Как получить статус загрузки файла с помощью HttpRequest.sendStream ()? - PullRequest
0 голосов
/ 15 октября 2018

Я написал функцию, чья загрузка файла в облачный сервис.Это хорошо работает, но я не могу понять, как проверить ход загрузки файла.

suspend fun uploadFile(path: Path) {
    ...
    val asyncFile: AsyncFile = awaitResult { fs.open(path.toString(), OpenOptions(), it) }
    val methodType: HttpMethod = when (link.method.toLowerCase()) {
        "put" -> HttpMethod.PUT
        "post" -> HttpMethod.POST
        else -> throw UnsupportedOperationException("Method is not supported")
    }
    val request: HttpRequest<Buffer> = webClient.requestAbs(methodType, link.href)
    val response: HttpResponse<Buffer> = awaitResult { request.sendStream(asyncFile, it) }
}

1 Ответ

0 голосов
/ 20 октября 2018

Вы можете обернуть интерфейс ReadStream, предоставляемый AsyncFile делегированием, и в методе handler обновить счетчик с количеством байтов, выданных AsyncFile, который сообщит вам, сколько файла имеетбыло отправлено.

...