Hvordan sporer jeg filnedlastinger

stemmer
69

Jeg har en nettside som spiller MP3-filer i en flash player. Hvis en bruker klikker 'play' flash player automatisk ned en mp3 og begynner å spille det.

Finnes det en enkel måte å spore hvor mange ganger en bestemt sang klipp (eller noen binærfil) har blitt lastet ned?


Er stykket linken en link til selve mp3-fil eller til noen Javascript-kode som dukker opp en spiller?

Hvis sistnevnte, kan du enkelt legge til din egen logging kode i det å spore antall treff på det.

Hvis det tidligere, trenger du noe som kan spore webserveren logge seg og gjøre at skillet. Min hosting plan kommer med Webalizer, som gjør dette pent.

Det er javascript-kode, slik at svar på det.

Men det ville være fint å vite hvordan du kan spore nedlastinger som bruker den andre metoden (uten å bytte verter).

Publisert på 01/08/2008 klokken 17:14
kilden bruker
På andre språk...                            


8 svar

stemmer
37

Det morsomme er at jeg skrev en media galleri php for all musikken min 2 dager siden. Jeg hadde et lignende problem. Jeg bruker http://musicplayer.sourceforge.net/ for spilleren. Og spillelisten er bygget via php. All musikk forespørsel går det et script som heter xfer.php? File = UANSETT

$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, '-_,', '+/='));
}

Og når du kaller filene bruke noe sånt som:

function base64_url_encode($input) {
     return strtr(base64_encode($input), '+/=', '-_,');
}

http://us.php.net/manual/en/function.base64-encode.php

Hvis du bruker noen javascript eller en flash-spiller (JW spiller for eksempel) som krever selve koblingen til å være en mp3-fil eller hva, kan du legge til teksten "& type = .mp3" så den endelige linke blir noe sånt som: "www .example.com / xfer.php? file = 34842ffjfjxfh & type = .mp3" . På den måten ser det ut som det ender med en mp3 forlengelse uten å påvirke filen link.

Svarte 01/08/2008 kl. 17:33
kilden bruker

stemmer
28

Bruk httpd loggfiler. Installer http://awstats.sourceforge.net/

Svarte 01/08/2008 kl. 17:51
kilden bruker

stemmer
21

Bruk bash:

grep mp3 /var/log/httpd/access_log | wc
Svarte 02/10/2009 kl. 02:12
kilden bruker

stemmer
12

Hvis sangen / binærfilen ble servert av apache, kan du enkelt grep den access_log å finne ut antall nedlastinger. En enkel etter logrotate skript kan grep loggene og vedlikeholde telle statistikk på en db. Dette har den ytelsen fordelen ved ikke å være i live forespørsel kodebanen. Gjør ikke-kritiske ting som statistikk offline er en god idé å skalere din nettside til store antall brukere.

Svarte 12/10/2008 kl. 09:10
kilden bruker

stemmer
12

Du kan også sette opp en Apache .htaccess direktiv som konverterer * .mp3 forespørsler i søkestreng dubayou arbeider med. Det kan være en elegant måte å holde direkte forespørsel og fremdeles være i stand til å slipstream logge funksjon i responsen.

Svarte 01/08/2008 kl. 17:42
kilden bruker

stemmer
7

Er stykket linken en link til selve mp3-fil eller til noen Javascript-kode som dukker opp en spiller?

Hvis sistnevnte, kan du enkelt legge til din egen logging kode i det å spore antall treff på det.

Hvis det tidligere, trenger du noe som kan spore webserveren logge seg og gjøre at skillet. Min hosting plan kommer med Webalizer, som gjør dette pent.

Svarte 01/08/2008 kl. 17:24
kilden bruker

stemmer
3

Problemet jeg hadde med ting som AWStats / lese gjennom webloggene er at store nedlastinger kan ofte deles inn data biter i loggene. Dette gjør forsone nøyaktig antall nedlastinger ganske hardt.

Jeg vil foreslå at Google Analytics hendelsessporing , da dette vil registrere seg én gang per klikk på en nedlastingslink.

Svarte 09/06/2016 kl. 09:38
kilden bruker

stemmer
3

Er det en database for musikkbiblioteket ditt? Hvis det er noen server kode som kjøres når du laster ned mp3 så kan du legge til ekstra kode der for å øke stykket teller. Du kan også ha javascript lage en ny anmodning å øke stykket teller, men dette kan føre til at folk / roboter feilaktig økes teller.

Jeg pleide å jobbe for en internett-radio stedet og vi brukte separate tabeller for å spore tid hver sang ble spilt. Våre bekker ble drevet av en perl skript Icecast, så vi utløste en databaseforespørsel hver gang et nytt spor begynte å spille. Deretter å beregne spille telle vi ville kjøre en spørring for å telle hvor mange ganger en sang id var i stykket loggen.

Svarte 04/09/2008 kl. 18:44
kilden bruker

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