मैं फ़ाइल डाउनलोड कैसे ट्रैक करूं?

मेरे पास एक ऐसी वेबसाइट है जो फ़्लैश प्लेयर में एमपी 3 बजाती है। यदि कोई उपयोगकर्ता 'प्ले' पर क्लिक करता है तो फ़्लैश प्लेयर स्वचालित रूप से एक एमपी 3 डाउनलोड करता है और इसे खेलना शुरू कर देता है।

क्या ट्रैक करने का कोई आसान तरीका है कि किसी विशेष गीत क्लिप (या किसी भी बाइनरी फ़ाइल) को कितनी बार डाउनलोड किया गया है?


क्या नाटक वास्तविक से एक लिंक लिंक है   एमपी 3 फ़ाइल या कुछ जावास्क्रिप्ट कोड के लिए   जो एक खिलाड़ी को पॉप अप करता है?

     

यदि उत्तरार्द्ध, आप आसानी से अपना जोड़ सकते हैं   ट्रैक करने के लिए वहां अपने लॉगिंग कोड   इसमें हिट की संख्या।

     

यदि पूर्व, आपको कुछ चाहिए   जो वेब सर्वर लॉग को ट्रैक कर सकता है   खुद और उस भेद को बनाओ। मेरे   होस्टिंग योजना वेबलाइज़र के साथ आता है,   जो यह अच्छी तरह से करता है।

यह जावास्क्रिप्ट कोड है, जिससे कि इसका उत्तर दिया जा सके।

हालांकि, यह जानना अच्छा होगा कि अन्य विधि (मेजबान स्विच किए बिना) का उपयोग करके डाउनलोड ट्रैक कैसे करें।

0
जोड़ा संपादित
विचारों: 2

8 उत्तर

आप एक अपाचे। Htaccess निर्देश भी स्थापित कर सकते हैं जो क्वेरीस्ट्रिंग dubayou में * .mp3 अनुरोधों को परिवर्तित करता है। यह प्रत्यक्ष अनुरोध रखने का एक शानदार तरीका हो सकता है और फिर भी प्रतिक्रिया में लॉग फ़ंक्शन को स्लिपस्ट्रीम करने में सक्षम हो सकता है।

0
जोड़ा

क्या यह गेम वास्तविक एमपी 3 फ़ाइल या कुछ जावास्क्रिप्ट कोड के लिए एक लिंक है जो एक खिलाड़ी को पॉप करता है?

यदि उत्तरार्द्ध, आप इसमें हिट की संख्या को ट्रैक करने के लिए आसानी से अपना स्वयं का लॉगिंग कोड जोड़ सकते हैं।

यदि पूर्व में, आपको ऐसा कुछ चाहिए जो वेब सर्वर लॉग को ट्रैक कर सके और उस भेद को कर सके। मेरी होस्टिंग योजना वेबलाइज़र के साथ आता है, जो यह अच्छी तरह से करता है।

0
जोड़ा

मजाकिया बात यह है कि मैंने 2 दिन पहले अपने सभी संगीत के लिए एक PHP मीडिया गैलरी लिखा था। मुझे भी ऐसी ही समस्या का समाधान करना पड़ा था। मैं प्लेयर के लिए http://musicplayer.sourceforge.net/ का उपयोग कर रहा हूं। और प्लेलिस्ट PHP के माध्यम से बनाया गया है। सभी संगीत अनुरोध वहाँ xfer.php नामक एक स्क्रिप्ट जाते हैं? फ़ाइल = WHATEVER

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

और जब आप फ़ाइलों को कॉल करते हैं तो कुछ इस तरह उपयोग करें:

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

http://us.php.net/manual/en/function। बेस 64-encode.php

If you are using some JavaScript or a flash player (JW player for example) that requires the actual link to be an mp3 file or whatever, you can append the text "&type=.mp3" so the final linke becomes something like: "www.example.com/xfer.php?file=34842ffjfjxfh&type=.mp3". That way it looks like it ends with an mp3 extension without affecting the file link.

0
जोड़ा
@anarchOi: GET पैरामीटर ( $ _ REQUEST ['file'] ) ज्ञात-अच्छी फ़ाइल नामों की श्वेतसूची के विरुद्ध तुलना करने का सबसे आसान तरीका होगा। उदाहरण के लिए, निर्देशिका में सभी फ़ाइलों की एक सूची जो आप अपनी फाइलें संग्रहीत करते हैं। सुनिश्चित करें कि आप केवल उन फ़ाइलों को संग्रहीत करने के लिए उस निर्देशिका का उपयोग करें जिन्हें आप डाउनलोड करना चाहते हैं ...
जोड़ा लेखक BlueRaja - Danny Pflughoeft, स्रोत
@tmsimont, क्या आपको स्मृति खपत को कम करने के किसी भी तरीके से पता चला है?
जोड़ा लेखक ezpresso, स्रोत
यदि फाइलें बहुत बड़ी हैं और आपका ट्रैफिक उच्च है तो यह सर्वर की मेमोरी सीमा को उड़ा देगा .. कुछ मैंने खुद अनुभव किया है।
जोड़ा लेखक tmsimont, स्रोत
@ezpresso या इस प्रश्न पर मैंने जो लिंक डाले हैं, उन्हें देखें: PHP स्मृति "> stackoverflow.com/questions/6627952/… (यह भी मजाकिया है कि मैं 6 साल पहले पोस्ट किए गए किसी चीज़ के उत्तर का जवाब दूंगा
जोड़ा लेखक tmsimont, स्रोत
इस स्क्रिप्ट में एक निर्देशिका ट्रैवर्सल भेद्यता है! एक हमलावर xfer.php में पास हो सकता है? फ़ाइल = .. / .. / .. / passwd या जो कुछ भी वे चाहते हैं! सावधान रहे!!!
जोड़ा लेखक Alex Weinstein, स्रोत
"निर्देशिका ट्रैवर्सल भेद्यता" को कैसे ठीक करें?
जोड़ा लेखक anarchOi, स्रोत

वेब सर्वर लॉग के माध्यम से AWStats / पढ़ने जैसी चीज़ों के साथ मेरी समस्या यह है कि बड़े डाउनलोड अक्सर लॉग के भीतर डेटा भागों में विभाजित किए जा सकते हैं। यह डाउनलोड की सटीक संख्या को काफी कठिन बनाता है।

मैं Google Analytics ईवेंट ट्रैकिंग का सुझाव दूंगा, क्योंकि यह एक बार पंजीकृत होगा डाउनलोड लिंक पर प्रति क्लिक।

0
जोड़ा

बैश का प्रयोग करें:

grep mp3 /var/log/httpd/access_log | wc
0
जोड़ा

Use your httpd log files. Install http://awstats.sourceforge.net/

0
जोड़ा

क्या आपके संगीत पुस्तकालय के लिए कोई डेटाबेस है? यदि कोई सर्वर कोड है जो एमपी 3 डाउनलोड करते समय चलता है तो आप प्ले गिनती बढ़ाने के लिए अतिरिक्त कोड जोड़ सकते हैं। आप प्लेस गिनती बढ़ाने के लिए जावास्क्रिप्ट को दूसरा अनुरोध भी दे सकते हैं, लेकिन इससे लोगों / रोबोटों की झूठी बढ़ती संख्या बढ़ सकती है।

मैं एक इंटरनेट-रेडियो साइट के लिए काम करता था और हमने प्रत्येक गीत को चलाने के समय को ट्रैक करने के लिए अलग-अलग तालिकाओं का उपयोग किया था। हमारी धाराओं को एक पर्ल स्क्रिप्ट द्वारा संचालित आइसकास्ट द्वारा संचालित किया गया था, इसलिए जब भी कोई नया ट्रैक खेलना शुरू हो गया, तो हमने डेटाबेस अनुरोध को ट्रिगर किया। फिर प्ले गिनती की गणना करने के लिए हम गिनने के लिए एक क्वेरी चलाएंगे कि प्ले लॉग में कितनी बार एक गीत की आईडी थी।

0
जोड़ा

यदि आपके गीत / बाइनरी फ़ाइल को अपाचे द्वारा परोसा गया था, तो आप डाउनलोड की संख्या जानने के लिए access_log को आसानी से grep कर सकते हैं। एक साधारण पोस्ट-लॉग्रोटेट स्क्रिप्ट लॉग को grep कर सकता है और एक डीबी में अपने गिनती आंकड़े बनाए रख सकता है। आपके लाइव अनुरोध कोड पथ में नहीं होने के कारण इसका प्रदर्शन लाभ है। आंकड़े ऑफ़लाइन जैसी गैर-महत्वपूर्ण चीजें करना आपकी वेबसाइट को बड़ी संख्या में उपयोगकर्ताओं को स्केल करना एक अच्छा विचार है।

0
जोड़ा