Назад | Перейти на главную страницу

Как лучше всего обслуживать файл, в который выполняется запись?

Я хотел бы настроить веб-сервер (или другой тип сервера?), Который позволит клиентам загружать файл с помощью http. Однако я хочу начать обслуживание файла до того, как он будет полностью записан на диск.

В идеале сервер должен отправлять столько данных, сколько доступно, а затем замедляться, пока не будет готово больше данных.

Что касается браузера, это должно выглядеть как «обычная» загрузка, однако длина содержимого не будет известна при запуске. Это нормально?

Есть рекомендации, как настроить такой сервер?

Что касается HTTP-клиента, совершенно нормально не отправлять Content-length заголовок (хотя клиент не сможет отображать индикатор выполнения, просто «Я скачал X КБ, и я понятия не имею, сколько осталось».

На стороне сервера сложнее. Единственный способ, которым я могу это сделать, - это прикрепить к файлу как поток (используя язык программирования - PHP, сценарий CGI и т. Д.) И вернуть содержимое. Проблема заключается в том, чтобы определить, когда файл "закончил" запись на диск (чтобы вы могли сказать HTTP-клиенту, что ему больше не нужно ждать).
Есть способы обойти это, но программирование оставлено читателю в качестве упражнения :)