Сведения о вопросе

Gaukhar

16:03, 1st July, 2020

Теги

php   apache   logging   download   analytics    

Как отслеживать загрузку файлов

Просмотров: 509   Ответов: 8

У меня есть сайт, который играет MP3 в плеере flash. Если пользователь нажмет кнопку 'play', то flash плеер автоматически загрузит mp3 и начнет его воспроизведение.

Есть ли простой способ отслеживать, сколько раз был загружен конкретный клип песни (или любой двоичный файл)?


Является ли ссылка на игру ссылкой на фактическое mp3 файл или к некоторому javascript коду вот и выскакивает игрок?

Если последнее, вы можете легко добавить свой собственный код регистрации там, чтобы отслеживать количество попаданий в него.

Если первое, то вам что-то понадобится это может отслеживать журнал веб-сервера сама и делаю это различие. Мой хостинг план поставляется с webalizer, что делает это очень мило.

Это код javascript, так что это ответ на этот вопрос.

Однако было бы неплохо знать, как отслеживать загрузки с помощью другого метода (без переключения хостов).



  Сведения об ответе

DO__IT

18:03, 1st July, 2020

Самое смешное, что я написал галерею php media для всей своей музыки 2 дня назад. У меня была похожая проблема. Я использую http://musicplayer.sourceforge.net/ для плеера. А плейлист строится через php. Все музыкальные запросы идут туда скриптом под названием xfer.php?file=WHATEVER

$filename = base64_url_decode($_REQUEST['file']);
header("Cache-Control: public");
header('Content-disposition: attachment; filename='.basename($filename));
header("Content-Transfer-Encoding: binary");
header('Content-Length: '. filesize($filename));

//  Put either file counting code here. either a db or static files

//

readfile($filename);  //and spit the user the file


function base64_url_decode($input) {
    return base64_decode(strtr($input, '-_,', '+/='));
}

И когда вы называете файлы использовать что-то вроде:

function base64_url_encode($input) {
     return strtr(base64_encode($input), '+/=', '-_,');
}

http://us.php.net/manual/en/function.base64-encode.php

Если вы используете какой-то javascript или flash плеер (например, JW плеер), который требует, чтобы фактическая ссылка была файлом mp3 или чем-то еще, вы можете добавить текст "&type=.mp3 " таким образом, конечная Линке становится чем-то вроде: - www.example.com/xfer.php?файл=34842ffjfjxfh&type=.mp3". Таким образом, он выглядит так, что заканчивается расширением mp3, не затрагивая ссылку на файл.


  Сведения об ответе

LIZA

18:03, 1st July, 2020

Используйте свои файлы журналов httpd. Установить http://awstats.sourceforge.net/


  Сведения об ответе

SKY

18:03, 1st July, 2020

Использовать bash:

grep mp3 /var/log/httpd/access_log | wc


  Сведения об ответе

ASSembler

18:03, 1st July, 2020

Если ваша песня / двоичный файл обслуживался apache, вы можете легко grep access_log узнать количество загрузок. Простой сценарий post-logrotate может grep журналов и поддерживать статистику подсчета в БД. Это имеет преимущество в производительности, так как не находится в пути кода вашего живого запроса. Делать некритические вещи, такие как статистика в автономном режиме, - это хорошая идея для масштабирования вашего сайта для большого числа пользователей.


  Сведения об ответе

PIRLO

18:03, 1st July, 2020

Вы даже можете настроить директиву Apache .htaccess, которая преобразует *.mp3 запросы в строку запроса, с которой работает dubayou. Это может быть элегантный способ сохранить прямой запрос и все еще иметь возможность проскальзывать функцию лога в ответ.


  Сведения об ответе

crush

18:03, 1st July, 2020

Является ли ссылка play ссылкой на фактический файл mp3 или на какой-то код javascript, который всплывает в плеере?

Если последнее, вы можете легко добавить свой собственный код регистрации там, чтобы отслеживать количество обращений к нему.

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


  Сведения об ответе

JUST___

18:03, 1st July, 2020

Есть ли база данных для вашей музыкальной библиотеки? Если есть какой-либо серверный код, который запускается при загрузке mp3, то вы можете добавить туда дополнительный код для увеличения количества воспроизведения. Вы также можете попросить javascript сделать второй запрос на увеличение количества игр, но это может привести к ложному увеличению количества людей / роботов.

Когда-то я работал на сайте интернет-радио, и мы использовали отдельные таблицы, чтобы отслеживать время исполнения каждой песни. Наши потоки питались от скрипта perl под управлением icecast, поэтому мы запускали запрос базы данных каждый раз, когда начинался новый трек. Затем, чтобы вычислить счетчик воспроизведения, мы запускали запрос, чтобы подсчитать, сколько раз идентификатор песни был в журнале воспроизведения.


  Сведения об ответе

JUST___

18:03, 1st July, 2020

Проблема, с которой я столкнулся с такими вещами, как AWStats / чтение журналов веб-сервера, заключается в том, что большие загрузки часто могут быть разделены на куски данных в журналах. Это делает согласование точного количества загрузок довольно сложным.

Я бы предложил отслеживание событий Google Analytics, так как это будет регистрироваться один раз за клик по ссылке для загрузки.


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться