Я создаю веб-инструмент, который позволяет пользователям загружать PDF-файлы на сервер с помощью своих веб-браузеров. Сервер основан на Python (Paste + Pyramid).
Проблема, с которой я столкнулся сейчас, заключается в следующем: если пользователь загружает довольно большой файл (скажем, 100 МБ), и он отменяет загрузку до его завершения, мой код обработчика на сервере все еще вызывается (вместо запрос отменяется).
Проблема в том, что request.POST['myfile'].file
является неполным, когда это происходит. Это фактически означает, что файл PDF будет поврежден, если я просто запишу его в какое-то место на сервере.
Когда я смотрю журнал сервера, он показывает исключение «сломанный канал» на сервере вставки; однако я понятия не имею, как перехватить это исключение и сделать так, чтобы мой код представления / обработчика не выполнял и не сохранял неполный файл.