On Mon, Oct 14, 2024 at 11:02:17AM +0300, Victor Wagner wrote: > В Mon, 14 Oct 2024 04:05:56 +0100 > Misha Ramendik <m...@ramendik.eu> пишет: > > > авторизации. Я высылаю линк человеку, он по этому линку нажимает > > кнопку и заливает файл, линк перестаёт работать. Если можно как-то > > обрабатывать заливаемое CGI по кусочкам (и выдавать при этом юзеру > > progress), то я пожалуй понимаю как это реализовать, но это пока > > "если". > > Проще считать что в тот момент когда у тебя запустился скрипт и получил > multipart/form-data, у тебя уже весь файл на сервере.
Проще, но при таком подходе progress-bar никак не сделать. И если бы данные от клиента всегда целиком выкачивались бы на сервер, то это означало бы, что лимит на upload не работает. И это была бы дырка для DoS-a. Обработчик должен выкачивать небольшую часть тела запроса, делать разборку заголовков (включая Content-type: multipart/form-data), а затем вычитывать сокет/пайп до тех пор, пока не будет превышен лимит. При превышении нужно выдать клиенту ошибку и закрыть сокет/пайп. -- Eugene Berdnikov