Webサイトでのファイルのダウンロードをカウントする最良の方法

StackOverflow https://stackoverflow.com/questions/158124

  •  03-07-2019
  •  | 
  •  

質問

この質問に対する簡単で簡潔な答えを見つけるのがどれほど難しいかは驚くべきことです:

  1. ウェブサイトにfoo.zipというファイルがあります
  2. このファイルにアクセスした人の数を調べるにはどうすればよいですか?
  3. 必要に応じてTomcat呼び出しを使用できます

更新:スクリプトの作成を提案する場合、適切なスクリプトを教えてもらえますか?

役に立ちましたか?

解決

または、リアルタイムでデータを必要としない場合は、ログファイルを解析できます。

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

コメントへの返信:

ログファイルにはダウンロードされたバイトも含まれますが、他の誰かが指摘したように、ユーザーがクライアント側でダウンロードをキャンセルした場合、これは正しいカウントを反映しない可能性があります。

他のヒント

おそらく最も簡単な方法は、ファイルに直接リンクする代わりに、カウンターをインクリメントしてから問題のファイルに転送するスクリプトにリンクすることです。

答えがある場合、「最も簡単な方法は、ファイルに直接リンクする代わりに、カウンターをインクリメントして問題のファイルに転送するスクリプトにリンクすることです。」

これは追加です:

$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 とともにデータベーステーブルに保存することもできます。

ログを使用する-ファイルに対する各GETリクエストは別のダウンロードです(何らかの理由で訪問者がダウンロードを途中で停止した場合を除く)。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top