Есть ли способ узнать, насколько велик файл, передаваемый через http?

Я отправляю довольно большой файл через экспресс в моем маленьком приложении node. Поскольку файл очень большой, я отправляю файл в потоке.

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

Этот SO-вопрос использует заголовок 'content-length' для определить размер файла. Однако после немного research, кажется, что при потоковой передаче файла длина содержимого не может быть известна заранее.

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


person Isaac    schedule 22.03.2019    source источник
comment
Что именно вы подразумеваете под «отправить файл в потоке»? Это какая-то функция Node.js? Сам по себе HTTP не имеет концепции «потоковой передачи» — он всегда «потоковая передача» осуществляется через TCP — у него просто есть два разных способа сигнализировать о том, где заканчивается сообщение: Content-Length (когда вы заранее знаете длину) или Transfer-Encoding: chunked (когда вы не знаете длину сообщения). 'т).   -  person Vasiliy Faronov    schedule 22.03.2019


Ответы (1)


если вы загружаете через multipart/form-data, вы можете найти длину содержимого.

person jcuypers    schedule 22.03.2019