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


У меня есть веб-сайт, который воспроизводит mp3-файлы во флэш-плеере. Если пользователь нажимает "воспроизвести", проигрыватель flash автоматически загружает mp3 и начинает его воспроизведение.

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


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

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

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

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

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

Author: Lakmal Vithanage, 2008-08-01

8 answers

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

$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?file=34842ffjfjxfh&type=.mp3 ". Таким образом, похоже, что он заканчивается расширением mp3, не затрагивая ссылку на файл.

 37
Author: w-ll, 2018-04-11 12:10:46

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

 28
Author: Tim Boland, 2012-05-07 01:43:59

Используйте bash:

grep mp3 /var/log/httpd/access_log | wc
 21
Author: randy melder, 2009-10-02 02:12:55

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

 12
Author: saint_groceon, 2008-08-01 17:42:04

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

 12
Author: Vinay Y S, 2008-10-12 09:10:45

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

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

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

 7
Author: Dillie-O, 2008-08-01 17:24:24

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

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

 3
Author: Mike H, 2008-09-04 18:44:22

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

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

 3
Author: icc97, 2016-06-09 09:38:50