Как сделать доступ для скачивания к файлу только для авторизованного пользователя?

COBRA094

Новичок
Как сделать доступ для скачивания к файлу только для авторизованного пользователя?

Никто не знает, как сделать загрузку файла только для авторизованного юзера?
Ну как в веб-магазинах где мп3 продают например - пополняешь баланс и покупаешь на него мп3 файлы.

Никак не соображу 2 вещи:

1) Ну авторизацию юзера я напишу там через сессии и куки, а как разрешить только ему и только с его компа загрузить оплаченный файл?
2) Как отследить что юзер файл скачал чтоб закрыть ему к нему доступ как только он скачает его полностью?

Я видел например что на http://3mp3.ru в корзине можно посмотреть даже сколько килобайт от каждого файла ты скачиваешь...

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

Tor

Новичок
сдесь спрашивают, когда не получается что-то именно с "программирование"

"напишите мне скрипт" - это несколько в иное место
 

SNiP

Новичок
отдавать файл своим приложением (php скриптом).
ИМХО, php для этого не самый лучший выбор.
 

COBRA094

Новичок
Автор оригинала: Tor
сдесь спрашивают, когда не получается что-то именно с "программирование"

"напишите мне скрипт" - это несколько в иное место
ну я немного не так выразился - я напишу сам, просто мне даже в суппорте моего хостера не могут сказать отчего отталкиваться при написании... вот я и спросил хоть примерно как такие вещи начинать делать...

PS: Я не чайник в php, просто ни разу еще не пытался писать подобные системы
 

Ilya

Новичок
вкраце.

юзер залогинился, у него есть сессия(кука) что угодно.
т.е. ты можешь его идентифицировать.

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

COBRA094

Новичок
Автор оригинала: ForJest
файл скриптом
файл* авториз* пользоват*
Это линки на поиск. Я искал но не нашел примеров...
В одной из тем ты написал:

------------------------------

А как ты в этом случае определишь что, файл качается одним юзером? Мне кажется способ анализа логов неприменим.
Я исхожу из следующий предположений:
1. Приносит рейтинг завершение скачивания файла
2. Приносит рейтинг завершение скачивания файла одним конкретным пользователем.

Отсюда мне видится примерно следующая последовательность действий.
Файл отдается скриптом. Для скачивания выделяется уникальная ссылка. По окончании закачки ссылка убивается.

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

---------------------------------

А вот кусочка кода для примера я не нашел. не дашь ссылку где с примерами это обсуждается? Вот сделать уникальную ссылку - беспроблем а как отследить то что файл скачан?
 

Мутник

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

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

COBRA094

Новичок
Автор оригинала: Мутник
т.к. мп3 файлы не очень большие - берешь, открываешь данному юзеру доступ на 30 минут на скачивание данного файла, а потом просто доступ на файл убиваешь.

или, просто читаешь файл из какой то директории, и отдаешь его прямо на экран с соответствующими заголовками. разве это проблема?
Я для примера мп3 привел. на самом деле будут авишники по 700 МБ.
 

Мутник

Новичок
COBRA094

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

COBRA094

Новичок
Автор оригинала: Мутник
COBRA094

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

Мутник

Новичок
COBRA094

тут фраза модна: "готовый год ищут в ветках offtopic и работа. какой то результат может будет во втором!".
 

mike_S

Новичок
если файл большого объёма - дай доступ на сутки ;)
всяко юзер скачать успеет
 

Мутник

Новичок
mike_S

хм.. тут уж не скажи. 90% юзеров успеют, а 10 могут не успеть.. и потерять эти 10% из за невыполнения своей части обязанностей как то некрасиво. 700 метров это не 2-3, которые можно за 1-10 минут выкачать... тут надо хитрее думать.
 

COBRA094

Новичок
Хитрее - это определять сколько он (юзер) скачал и если объем скачанного стал равен объему файла - доступ к файлу закрывать. Вопрос то именно в том как определить сколько скачано от файла...
 

Crazy

Developer
Автор оригинала: COBRA094
если объем скачанного стал равен объему файла - доступ к файлу закрывать.
Глупо и бессмысленно: после первого же обрыва файл станет недокачиваем.
 

Crazy

Developer
Tor, потому, что при обрыве вероятна ситуация, когда получено меньше, чем отправлено. И ограничение на объем скачивания уже не даст это добрать.
 

Tor

Новичок
если порвется не на последней порции, то при следующем коннекте будет послан правильный range и ничего не поломается

на всякий случай можно разрешить последние там 5% файла качать кому угодно
 

Crazy

Developer
Tor, ты делаешь два неверных допущения:

1. Пользователь использует специальный софт. Если у него IE, то не будет никаких range.

2. Каждый отправленный байт доходит до пользователя. Если ты отправил X байт, то это вовсе не значит, что пользователь получил ровно X байт. А потеря даже одно байта будет фатальна для этого алгоритма.
 
Сверху