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

Ответить