Ну, мне нужно только взять из потока Content-Length, записать в файл все остальное и сравнить размер. Все. Если размер совпал, убиваю соединение.
Обработку ошибок не делал, файл повешу на supervisord, чтобы поднимал его в случае падения. Но, порт не будет смотреть наружу, поэтому не думаю что там что-то критичное произойдет.