Download notify модуль

Grigory A. Mozhaev zcrendel на gmail.com
Пн Фев 21 13:03:49 MSK 2011


Добрый день!

Пытаюсь написать модуль под nginx решающий задачу отслеживания при скачивании файлов с сервера (download). 
Таким образом, что для файлов определенного локейшена можно определить директиву 'download_notify':

location ~* /secret_files {
  download_notify http://127.0.0.1:3000/notify;
}

Скрипт notify должен дергаться только в том случае, когда файл полностью скачан. Передаваемые параметры:
URL загруженного файла, успех или ошибка при загрузке, скорость загрузки (средняя), ip адрес.

Хотя я новичек в разработке модулей для nginx, по сути - это мой первый модуль, но имею большой стаж разработки на Си. 
Итоговый модуль будет размещен в свободном доступе так как подобный функционал востребован (судя по форумам и 
вопросам), но не реализован.

Как я понимаю, этот модуль должен быть "фильтром". Нужно, фильтруя http ответы:
1. Отловить начало скачивание конкретного файла.
2. Отлавливать скачивание каждой отдельной части этого файла и таким образом вычисляя среднюю скорость скачивания.
3. Завершение скачивания с успехом тогда, когда размер переданного контента равен размеру передаваемого. Хотя тут 
непонятно, как узнать, что произошла ошибка при скачивании.

Поделитесь вашим опытом. Куда стоит копать? Какие модули для примера смотреть? Какие структуры данных использовать? 

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


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