Отловить момент, когда закачка завершена
AleXXX V. NovikoFF
alexxx at alexxx.ru
Tue Feb 7 11:04:17 MSK 2006
Класс, то, что я давно искал, а тогда еще вопрос в догонку:
Вот я передаю от бэкэнда заголовок X-Accel-Redirect нгинкс начинает тихо нудно отдавать большущий файл,
а мне бы нужно как-то ограничить размер передаваемых данных, допустим разрешить клиенту забрать не весь файл до конца, а, например, только 100Мб (не важно частями, или с начала),
может есть где-нибудь в загашнике какой-нибудь хитрый заголовок (для комплекта к X-Accel-Redirect) для такого ограничения?
Tue, 7 Feb 2006 10:05:28 +0300 (MSK) Вы писали:
> On Tue, 7 Feb 2006, AleXXX V. NovikoFF wrote:
>
> > Возникла необходимость отдавать файлы nginx-ом, мне нужно точно знать, сколько nginx отдал клиенту байтиков, и отловить тот момент, когда закачка завершена (допустим запускать какой-то скрипт, или писать что-то куда, событие, может, отправлять...)
> > Есть ли какие-то средства для этого? Или нужно писать модуль (править исходник)?
>
> Как-то так:
>
> location / {
> set $orig_uri $uri;
> set $orig_args $args;
>
> post_action /post;
>
> ...
> }
>
> location = /post {
> proxy_pass ...
> proxy_set_header x-orig-url $orig_uri?$orig_args;
> proxy_set_header x-sent $body_bytes_sent;
> }
>
> Но нужно учесть, что $body_bytes_sent - это количество переданных клиенту
> данных с точностью до размера ядерного буфера TCP.
>
>
> Игорь Сысоев
> http://sysoev.ru
--
AleXXX V. NovikoFF <alexxx at alexxx.ru>
More information about the nginx-ru
mailing list