Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.06.07;
Скачать: CL | DM;

Вниз

Как сделать счетчик скачивания файла?   Найти похожие ветки 

 
@!!ex ©   (2009-04-03 09:20) [0]

Лежит файл на сервере, хочу знать сколько раз его скачали...
а как сделать - не знаю...


 
Skyle ©   (2009-04-03 09:22) [1]

Думаю сейчас предложат сделать доступ к файлу через скрипт, а файл доставать из базы.


 
Вальдемар   (2009-04-03 09:36) [2]

думаю, сейчас предложат пройти в гугл


 
test ©   (2009-04-03 09:37) [3]

Слежение за файлом поставить?


 
KSergey ©   (2009-04-03 09:44) [4]

Что за сервер-то? по какому протоколу доступ?


 
@!!ex ©   (2009-04-03 11:24) [5]

> [2] Вальдемар   (03.04.09 09:36)
> думаю, сейчас предложат пройти в гугл

Бал я там...
http://www.google.ru/search?sourceid=chrome&ie=UTF-8&q=Счетчик+скачки+файлов


> [3] test ©   (03.04.09 09:37)
> Слежение за файлом поставить?

Как?


> [4] KSergey ©   (03.04.09 09:44)
> Что за сервер-то? по какому протоколу доступ?

Доступ по http.
файл лежит у хостера на сервере. сервер linux. не VDS, только базовые функции. есть php


 
clickmaker ©   (2009-04-03 11:27) [6]

> есть php

ну и доставай через php
ссылка не прямая, а типа http://..../getfile.php?filename=...
а в скрипте увеличивай счетчик


 
@!!ex ©   (2009-04-03 11:29) [7]

> [6] clickmaker ©   (03.04.09 11:27)

да я не знаю как это сделать. :)
Киньте ссылкой на статью?


 
Вальдемар   (2009-04-03 11:31) [8]


> Бал я там...

и?
куча ссылок
эта тема замуселена до дыр

через .htaccess делаешь перенаправление на скрипт, например, всего, что *.exe (это если прямые ссылки нужны)
в скрипте считаешь и пишешь в базу. этим же скриптом отдаешь файл
чего тут еще можно рассказать?


 
clickmaker ©   (2009-04-03 11:37) [9]

> да я не знаю как это сделать. :)

не знаешь, как в хтмл запуздырить ссылку типа <a href="http://.../somescript.php></a> ?


 
Anatoly Podgoretsky ©   (2009-04-03 11:43) [10]

> @!!ex  (03.04.2009 11:24:05)  [5]

> Бал я там...

Ну бал и бал, чего хвалиться то


 
Anatoly Podgoretsky ©   (2009-04-03 11:49) [11]


> Доступ по http.
> файл лежит у хостера на сервере. сервер linux. не VDS, только
> базовые функции. есть php

Апач? Тогда там есть "хакерская" штучка, когда своим глазам не веришь, вызов обработчика по псевдо имени

http://www.domain.ru/folder/file.txt

где folder не существующая папка и управление идет в особый скрытый обработчик, тебе кажется, что ты скачиваешь file.txt из папки folder, ан нет, там идут зловредные и не очень закулисные действия. Я названия не помню, но делается это на уровне конфигурации сервера. И они эту гадость сумели протолкнуть в RFC


 
clickmaker ©   (2009-04-03 11:57) [12]

ну или через .htaccess
перенаправление можно сделать так

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^sitemap.xml$ sitemap.xml.php [QSA,L]
</IfModule>


 
KSergey ©   (2009-04-03 12:47) [13]

> Anatoly Podgoretsky ©   (03.04.09 11:49) [11]
> И они эту гадость сумели  протолкнуть в RFC

Ну и почему гадость? Серверу пришел http-запрос, он на него ответил. Клиент все равно не волен указывать способ обработки своего запроса.
Или я недопонял? о каком РФЦ речь?


 
palva ©   (2009-04-03 12:54) [14]


> Киньте ссылкой на статью?

http://fundisom.com/phparadise/php/file_handling/download_counter


 
T&amp;F   (2009-04-03 13:27) [15]

Кто бы ещё подсказал способ на PHP бороться с такой ситуацией: кто-то начал скачивать файл, но обрывает загрузку (cancel)... А скрипт всё равно засчитывает это как полноценное скачивание :(


 
clickmaker ©   (2009-04-03 13:29) [16]

> кто-то начал скачивать файл, но обрывает загрузку (cancel)
> ... А скрипт всё равно засчитывает это как полноценное скачивание

а кого волнуют проблемы бедных негров?
попытался скачать - значит заинтересовался, значит статистика должна быть


 
T&amp;F   (2009-04-03 13:39) [17]


> значит статистика должна быть

Проблема в том, что на практике таких ложных скачиваний оказывает аж до 25%. У кого инет глюканет, у кого ещё что, кто-то просто с дуру тыкает по ссылке несколько раз. Конечно же мы это всё считаем в статистике. Можно конечно грубо ути 25% убирать из результата или погрешность ввести, но охота простое и элегантное решение

Пример - Яндекс.Диск (народ-диск). Там можно увидеть кол-во скачиваний, причём полноценных. Как они это сделали? :)

Я понимаю, Яндекс птица крупная, пусть их решение даже ресурсозатратное, но всё равно охота хоть сам принцип узнать


 
clickmaker ©   (2009-04-03 13:48) [18]

> Там можно увидеть кол-во скачиваний, причём полноценных

а откуда информация, что они именно полноценные?


 
T&amp;F   (2009-04-03 14:08) [19]


> а откуда информация, что они именно полноценные?

Официальной само собой нету, но на основе экспериментов с разными файлами и разным кол-вом одновременных скачиваний одного и того же файла ни один раз счетчик не ошибся и не засчитал оборванные закачки (даже если они оборвались на 99%-ах)...


 
@!!ex ©   (2009-04-03 14:20) [20]

> [19] T&F   (03.04.09 14:08)

Как вариант - считать сколько раз был отдан првый байт файла.
Докачка и несколько кликов будут норм обрабатываться.
Но как я понял погугля в этом случае придется писать свой скрипт который будет рулить закачкой, обеспечиват докачку, корректно обрабатывать переподключение и проч, что есть гемор и нагрузка на сервер.


 
Anatoly Podgoretsky ©   (2009-04-03 14:32) [21]

> T&amp;F  (03.04.2009 13:27:15)  [15]

А ты знаешь логически как сделать иначе, не забывая про многопоточную закачку, при том под разными ИП


 
Anatoly Podgoretsky ©   (2009-04-03 14:34) [22]

> clickmaker  (03.04.2009 13:48:18)  [18]

И как я понимаю никакой закачки и многопоточности.


 
Anatoly Podgoretsky ©   (2009-04-03 14:53) [23]

> @!!ex  (03.04.2009 14:20:20)  [20]

У него проблема не с первым байтом, а с последним


 
Anatoly Podgoretsky ©   (2009-04-03 14:54) [24]

К стати вот еще хуже вариант - большая сетка за НАТом и несколько человек качают один и тот же файл, в несколько потоков


 
clickmaker ©   (2009-04-03 14:57) [25]

может, как-то логи анализируют.
Но не зря ведь на народе запрещена закачка в несколько потоков, а докачка - так вообще через download manager


 
@!!ex ©   (2009-04-03 15:02) [26]

> [23] Anatoly Podgoretsky ©   (03.04.09 14:53)

А какая разница кто и сколько раз скачал последний байт? :)
Количество скачек первого байта с большой точностью говорит о том, сколько раз был скачан весь файл.
Убирается влияений докачек и нескольких кликов на ссылку.


 
@!!ex ©   (2009-04-03 15:06) [27]

> [14] palva ©   (03.04.09 12:54)

Спасибо!


 
Anatoly Podgoretsky ©   (2009-04-03 15:08) [28]

> clickmaker  (03.04.2009 14:57:25)  [25]

Я же привел варианты, никакого человеческого разума не хватит, не говоря уже об ИИ. Или один поток закачки от начала до конца или погода на Марсе.


 
Anatoly Podgoretsky ©   (2009-04-03 15:12) [29]

> @!!ex  (03.04.2009 15:02:26)  [26]

Нифига это не говорит, начал закачку и сразу прекратил ее.


 
@!!ex ©   (2009-04-03 15:34) [30]

> [29] Anatoly Podgoretsky ©   (03.04.09 15:12)

Я сказал "с большой точностью". Начал закачку и сразу прекратил - довольно редкое явление, вполне можно его игнорировать.
В прицнипе вы конечно правы, количество закачек последнего байта даст более точный результат.


 
Andy BitOff ©   (2009-04-03 15:42) [31]


> @!!ex ©   (03.04.09 15:34) [30]

Количество закачек с учетом первого и последнего даст еще более точный результат.


 
clickmaker ©   (2009-04-03 15:42) [32]

> Начал закачку и сразу прекратил - довольно редкое явление

начал закачку, и связь оборвалась - тоже довольно редкое. Но 2 довольно редких в сумме уже дают не такое редкое )


 
Andy BitOff ©   (2009-04-03 15:45) [33]


> Andy BitOff ©   (03.04.09 15:42) [31]

Точнее первый - (первый - последний)


 
Kerk ©   (2009-04-03 15:58) [34]

Самый хреновый вариант - это когда сервер поддерживает докачку (а у нас же цивилизованный сервер) и юзер качает файл какой-нибудь качалкой в несколько потоков. В итоге имеем несколько РАЗНЫХ обращений от одного юзера к одному файлу.


 
Kerk ©   (2009-04-03 16:00) [35]

Если не считать этого, то лучший счетчик скачиваний - логи апача. Там и размер скачанного можно посмотреть и выяснить все ли скачано.


 
Anatoly Podgoretsky ©   (2009-04-03 16:17) [36]


> Я сказал "с большой точностью". Начал закачку и сразу прекратил
> - довольно редкое явление, вполне можно его игнорировать.
>
> В прицнипе вы конечно правы, количество закачек последнего
> байта даст более точный результат.

1. Теперь убери слово и посмотри, что получилось, а нестабильный канал, сервер, клиент - уже не такая редкость.

2. А теперь рассмотри вариант с потоками, и случай когда есть первый байт и последний байт, но нет середины.


 
Anatoly Podgoretsky ©   (2009-04-03 16:21) [37]


> Если не считать этого, то лучший счетчик скачиваний - логи
> апача.

Заблуждение и не более. Я же приводил вариант, когда качается из-за НАТ, в несколько потоков и качается не до конца. Бесполезно даже делить сумму выданых байт на размер файла, хотя это наиболее точный вариант, особенно если измерять в байтах, а не штуках.

Но проще все плюнуть, как считает, так пусть и считает, все равно ценность данной информации стремится к нулю. Ну а погреть сердце, лучше всего при неточном измерении.


 
Kerk ©   (2009-04-03 17:18) [38]


> Anatoly Podgoretsky ©   (03.04.09 16:21) [37]

Если НАТ, то вообще хрен посчитаешь. Если только разные браузеры или еще чего.


 
palva ©   (2009-04-03 18:09) [39]

Как-то мне сомнительно, что будет возможность докачки, когда файл отдается php-скриптом. Хотя - все бывает.


 
antonn ©   (2009-04-03 18:25) [40]


> Как-то мне сомнительно, что будет возможность докачки, когда
> файл отдается php-скриптом. Хотя - все бывает.

нужно будет самому возиться с
HTTP/1.0 206 Partial Content
и будет докачка

я многопоточность отсеиваю примерно так - заношу в кеш попытки доступа за последние пол часа, если при запросе к файлу будет метка в кеше (ip+useragent)  - значит не учитываю, иначе инкрементирю счетчик. В принципе лучше, чем считать все запросы к файлу.



Страницы: 1 2 вся ветка

Текущий архив: 2009.06.07;
Скачать: CL | DM;

Наверх




Память: 0.56 MB
Время: 0.016 c
15-1238953192
ЭРИКА
2009-04-05 21:39
2009.06.07
С ДНЕМ РОЖДЕНИЯ!


2-1240404361
cyber-pilot
2009-04-22 16:46
2009.06.07
TFileOpen vs chm


4-1210775223
re_qas
2008-05-14 18:27
2009.06.07
ADSI в DLL


4-1210848857
nick_sniper2
2008-05-15 14:54
2009.06.07
Как остановить "завершение работы Windows"?


15-1238166159
Azazello
2009-03-27 18:02
2009.06.07
Иконка приложения