Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Download notify модуль
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@xxxxxxxxx
> http://nginx.org/mailman/listinfo/nginx-ru
--
In theory, there is no difference between theory and practice.
But, in practice, there is.
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru
|