Domanda

È sorprendente quanto sia difficile trovare una risposta semplice e concisa a questa domanda:

  1. Ho un file, foo.zip, sul mio sito web
  2. Cosa posso fare per scoprire quante persone hanno avuto accesso a questo file?
  3. Potrei usare le chiamate Tomcat se necessario

Aggiornamento: se suggerisci di scrivere una sceneggiatura, puoi indicarmene una decente?

È stato utile?

Soluzione

O potresti analizzare il file di registro se non hai bisogno dei dati in tempo reale.

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

In risposta al commento:

Il file di registro contiene anche byte scaricati, ma come ha sottolineato qualcun altro, questo potrebbe non riflettere il conteggio corretto se un utente annulla il download sul lato client.

Altri suggerimenti

Il modo più semplice sarebbe probabilmente invece di collegarsi direttamente al file, collegarlo a uno script che incrementa un contatore e quindi inoltra al file in questione.

Con la risposta " Probabilmente il modo più semplice sarebbe invece di collegare direttamente al file, collegarlo a uno script che incrementa un contatore e quindi inoltra al file in questione. "

Questo è aggiuntivo:

$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

Qui count.txt è un semplice file di testo semplice, che memorizza le informazioni sul contatore. Puoi salvarlo in una tabella di database insieme a downloadable_filename.ext .

Usa i log: ogni richiesta GET per il file è un altro download (a meno che il visitatore non abbia interrotto il download a metà strada per qualche motivo).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top