Re: Download notify модуль

Grigory A. Mozhaev zcrendel на gmail.com
Ср Мар 2 15:08:27 MSK 2011


On Tuesday 22 February 2011 12:13:53 Alexandre Snarskii wrote:
> On Mon, Feb 21, 2011 at 02:07:26PM +0300, Grigory A. Mozhaev wrote:
> > > > Скрипт notify должен дергаться только в том случае, когда файл
> > > > полностью скачан. Передаваемые параметры:
> > > > URL загруженного файла, успех или ошибка при загрузке, скорость
> > > > загрузки (средняя), ip адрес.
> > >
> > > Вы уж определитесь, нужно ли звать этот скрипт "только в случае, когда
> > > файл полностью скачан", или и в случаях "ошибка при загрузке".
> >
> > В скрипт notify должна поступать статус закачки. А скрипт дергается
> > только по факту полного завершения операции скачивания. Если файл
> > полностью скачан - значит 'SUCCESS', если произошла ошибка то,
> > соответственно, 'FAILED'.
> >
> > > Если второе - посмотрите на post_action, который практически
> > > не описан, но, jimho, вполне может решить задачу без написания
> > > дополнительного модуля.
> >
> > Не совсем понимаю, как post_action сможет решить задачу
> > вычисления скорости закачки.
>
> $body_bytes_sent/$request_time ? Вполне себе средняя скорость...
>
> Впрочем, похоже этот подход действительно не сработает:
> $request_time в отличие от $body_bytes_sent определяется
> только на момент записи в лог, в post_action его еще нет.
>
> (possible workaround: с помощью встроенного perl'а запоминать
> момент начала запроса и на момент post_action сравнивать
> с текущим временем).
>
> > Единственное более-менее рабочее (сам не проверял) полу-решение нашел
> > здесь: http://abarmotik.livejournal.com/7496.html
> >
> > А вот товарищ вопрошает список рассылки, но ответа нет.
> > http://nginx.org/pipermail/nginx-ru/2009-June/025566.html
> > Как и в других местах в интернетах.
> >
> > Разве модуль не будет изящным решением наболевших проблем?
>
> jimho, не будет. Модуль нужно написать/выкачать, вкомпилировать
> в nginx (в некоторых случаях - убедить хостинг-провайдера
> вкомпилировать), и, самое главное, не забывать делать это каждый
> раз при апгрейде nginx. Плюс, наверное самое главное - ошибка в
> модуле может привести к падению/зависанию всего nginx'а.
>
> post_action же вызывает совершенно стороннюю программу, глюк в
> которой для nginx'а (и, соответственно пользователей вашего
> сайта) останется незаметным.

Огромное спасибо всем кто отписался в треде - предложенных 
решений оказалось достаточно и без необходимости написания 
собственного модуля.

С уважением,
Можаев Григорий


Подробная информация о списке рассылки nginx-ru