Melhor maneira de contar downloads de arquivos em um site
-
03-07-2019 - |
Pergunta
É surpreendente como é difícil encontrar um simples, resposta concisa a esta pergunta:
- Eu tenho um arquivo, foo.zip, no meu site
- O que posso fazer para descobrir quantas pessoas acessaram este arquivo?
- Eu poderia usar chamadas Tomcat, se necessário
Update:? Se você sugere escrever um script, você pode apontar-me a um decente
Solução
Ou você poderia analisar o arquivo de log, se você não precisa os dados em tempo real.
cat /path/to/access.log | grep foo.zip | grep 200 | wc -l
Em resposta ao comentário:
O arquivo de log também contém bytes baixados, mas como alguém referiu, isso pode não refletir a contagem correta se um usuário cancela o download no lado do cliente.
Outras dicas
A maneira mais simples seria provavelmente em vez de ligar diretamente para o arquivo, link para um script que incrementa um contador e, em seguida, encaminha para o arquivo em questão.
Com a resposta "A maneira mais simples seria provavelmente em vez de ligar diretamente para o arquivo, link para um script que incrementa um contador e, em seguida, encaminha para o arquivo em questão."
Esta é adicional:
$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
Aqui count.txt
é um arquivo simples de texto, armazenar as informações de contador.
Você pode salvá-lo em uma tabela de banco de dados, juntamente com downloadable_filename.ext
também.
Use os logs -. Cada pedido GET para o arquivo é outro download (a menos que o visitante parou a parcialmente download através, por alguma razão)