Лучший способ рассчитывать загрузки файлов на веб-сайте - PullRequest
8 голосов
/ 01 октября 2008

Удивительно, как трудно найти простой, краткий ответ на этот вопрос:

  1. У меня есть файл, foo.zip, на моем сайте
  2. Что я могу сделать, чтобы узнать, сколько людей получили доступ к этому файлу?
  3. Я мог бы использовать вызовы Tomcat при необходимости

Обновление: Если вы предлагаете написать сценарий, можете ли вы указать мне достойный?

Ответы [ 4 ]

10 голосов
/ 01 октября 2008

Или вы можете проанализировать файл журнала, если вам не нужны данные в реальном времени.

cat /path/to/access.log | grep foo.zip | grep 200 | wc -l

В ответ на комментарий:

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

10 голосов
/ 01 октября 2008

Простейшим способом, вероятно, было бы вместо прямой ссылки на файл ссылка на скрипт, который увеличивает счетчик и затем пересылает файл, о котором идет речь.

4 голосов
/ 13 сентября 2012

С ответом «Вероятно, самый простой способ - вместо ссылки непосредственно на файл, ссылку на скрипт, который увеличивает счетчик и затем пересылает файл, о котором идет речь».

Это дополнительно:

$hit_count = @file_get_contents('count.txt');
$hit_count++;
@file_put_contents('count.txt', $hit_count);

header('Location: http://www.example.com/download/pics.zip'); // redirect to the real    file to be downloaded

Здесь count.txt - простой текстовый файл, в котором хранится информация о счетчике. Вы также можете сохранить его в таблице базы данных вместе с downloadable_filename.ext.

0 голосов
/ 01 октября 2008

Используйте журналы - каждый запрос GET для файла является другой загрузкой (если посетитель не остановил загрузку по какой-то причине).

...