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

голоса
66

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

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


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

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

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

Это код JavaScript, так что ответы на это.

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

Задан 01/08/2008 в 18:14
источник пользователем
На других языках...                            


8 ответов

голоса
36

Самое смешное, что я написал PHP медиа галерею для всей моей музыки 2 дня назад. У меня была аналогичная проблема. Я использую http://musicplayer.sourceforge.net/ для игрока. И список воспроизведения построены с помощью PHP. Все запрос музыки туда скрипт называется xfer.php? Файл = 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 или флэш-плеер (JW плеер, например), что требует фактической ссылке, чтобы быть mp3-файл или любой другой, вы можете добавить текст «& тип = .mp3», так что окончательный Линке становится чем-то вроде: «WWW .example.com / xfer.php? файл = 34842ffjfjxfh и тип = .mp3" . Таким образом, похоже, что он заканчивается с расширением mp3, не влияя на ссылку на файл.

Ответил 01/08/2008 в 18:33
источник пользователем

голоса
27

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

Ответил 01/08/2008 в 18:51
источник пользователем

голоса
21

Используйте Баш:

grep mp3 /var/log/httpd/access_log | wc
Ответил 02/10/2009 в 03:12
источник пользователем

голоса
12

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

Ответил 12/10/2008 в 10:10
источник пользователем

голоса
11

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

Ответил 01/08/2008 в 18:42
источник пользователем

голоса
6

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

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

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

Ответил 01/08/2008 в 18:24
источник пользователем

голоса
3

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

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

Ответил 09/06/2016 в 09:38
источник пользователем

голоса
3

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

Я имел обыкновение работать для сайта интернет-радио, и мы использовали отдельные таблицы для отслеживания времени была сыграна каждая песня. Наши потоки были приведены в действие с помощью скрипта на языке Perl работает Icecast, поэтому мы вызвали обращения к базе данных каждый раз, когда новый трек начал играть. Затем, чтобы вычислить количество воспроизведения мы запустить запрос, чтобы подсчитать, сколько раз ID песня была в журнале игры.

Ответил 04/09/2008 в 19:44
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more