Re: Download notify модуль

Alexandre Snarskii snar на snar.spb.ru
Пн Фев 21 13:52:37 MSK 2011


On Mon, Feb 21, 2011 at 01:03:49PM +0300, Grigory A. Mozhaev wrote:
> Добрый день!
> 
> Пытаюсь написать модуль под nginx решающий задачу отслеживания 
> при скачивании файлов с сервера (download). 
> Таким образом, что для файлов определенного локейшена можно определить 
> директиву 'download_notify':
> 
> location ~* /secret_files {
>   download_notify http://127.0.0.1:3000/notify;
> }
> 
> Скрипт notify должен дергаться только в том случае, когда файл полностью 
> скачан. Передаваемые параметры:
> URL загруженного файла, успех или ошибка при загрузке, скорость 
> загрузки (средняя), ip адрес.

Вы уж определитесь, нужно ли звать этот скрипт "только в случае, когда 
файл полностью скачан", или и в случаях "ошибка при загрузке". 

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

> 
> Хотя я новичек в разработке модулей для nginx, по сути - это мой 
> первый модуль, но имею большой стаж разработки на Си. 
> Итоговый модуль будет размещен в свободном доступе так как подобный 
> функционал востребован (судя по форумам и вопросам), но не реализован.
> 
> Как я понимаю, этот модуль должен быть "фильтром". Нужно, фильтруя http 
> ответы:
> 1. Отловить начало скачивание конкретного файла.
> 2. Отлавливать скачивание каждой отдельной части этого файла и таким 
> образом вычисляя среднюю скорость скачивания.
> 3. Завершение скачивания с успехом тогда, когда размер переданного 
> контента равен размеру передаваемого. Хотя тут 
> непонятно, как узнать, что произошла ошибка при скачивании.
> 
> Поделитесь вашим опытом. Куда стоит копать? Какие модули для примера 
> смотреть? Какие структуры данных использовать? 
> 
> С уважением,
> Можаев Григорий
> _______________________________________________
> nginx-ru mailing list
> nginx-ru at nginx.org
> http://nginx.org/mailman/listinfo/nginx-ru

-- 
In theory, there is no difference between theory and practice. 
But, in practice, there is. 



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