Создание временных ссылок

Cougar

Кошак
Создание временных ссылок

Задача такая:
Дать пользователю временную ссылку для загрузки файла, которая по прошествии определённого времени удаляется.

Порылся по форуму - нашёл то, что и предполагал - скачивать файл не напрямую, а через скрипт и хранить всю информацию о ссылке в БД. Это понятно, в этом случае вопросов нет - реализация предельно ясна и проста.

В поисках других решений в голове вызрел ещё один вариант:

Сами файлы хранить вне DocumentRoot (либо же в каталоге, который "Deny from all" - это непринципиально). Пользователю же выдавать ссылку на автоматически созданный симлинк к нужному файлу.
Удалять временные ссылки вроде бы тоже очень просто - смотрим дату создания симлинка. Как вариант, можно ещё учитывать размер скачиваемого файла, исходя из того, что для больших файлов необходимо больше времени для скачивания.
Как по мне - красивое решение, и (что немаловажно) нересурсоёмкое.
Но есть подозрения: если оно мне кажется таким красивым и правильным - значит, я что-то упустил.
А теперь - внимание, вопрос! :)
Какие могут быть подводные камни в реализации этого механизма с симлинками (разумеется, FollowSymlinks используется и опция разрешена для оверрайда)?

-~{}~ 18.01.05 14:08:

PS: Хм... ошибся форумом... собирался в "для продвинутых запостить". Но если администрация считает, что этому топику там не место - пусть тогда здесь остаётся...
 

MiRacLe

просто Чудо
подводный камень номер раз:
я получил от тебя ссылку, скачал файл и всё вроде бы клёво.... НО, я-то знаю что ссылка будет существовать ещё день(два дня, неделю, час - нужное подчеркнуть) и раздал её всем друзьям(знакомым,опубликовал в этом форуме, вывесил на своём сайте) и все довольные качают заветный файл (авторизация-то уже не нужна,файл отдаёт Apache...)
 

Cougar

Кошак
MiRacLe
Я сознательно не рассматриваю здесь вопросы по авторизации. С авторизацией гораздо проще - .htpasswd и всё.
А так - если чьи-то друзья не смогли скачать файл, потому что ссылка была удалена по крону - это вроде как и не моя проблема... предупреждать надо было, что ссылка временная :)

Собственно, меня больше интересует, какие могут возникнуть проблемы технического характера.
 

Screjet

Новичок
Как обычно,
в эту работу нужно будет вложить кучу времени :)
 

MiRacLe

просто Чудо
Cougar если ты "сознательно".... тогда к чему весь этот словесный понос? если тебе не нужна авторизованный доступ к твоим файлам ЗАЧЕМ вообще создавать временные файлы....
про друзей - я говорю про то что друзья в заданный промежуток времени всё же скачают файлы... а ты мне про Ерёму....

технический характер... электропитание отключиться? сервер выйдет из строя ? его отключат от хаба ? использование крепёжных деталей не соответствующих ГОСТ-у ?

Самое главное занятся вербальным сексом со всеми участниками форума... а что взять и попробовать - не кошерно....
 

Screjet

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

Частотой смены хостов занимаются другие модули (к ПХП отношения не имеет)
 

MiRacLe

просто Чудо
Screjet
ни что не мешает....

если не нужен авторизованный доступ к файлам ЗАЧЕМ вообще создавать временные файлы и вообще что-то городить ради того чтобы городить ?
 

Cougar

Кошак
MiRacLe
И где тут словесный понос-то? Есть конкретная задача, описанная в первом сообщении этого топика. Про авторизацию там ни слова.

Вопросов, связанных с ограничением доступа - пока нет.
Есть вопросы технические и просьба сообщить, на какие грабли я здесь могу наступить - например: возможна ли ситуация, когда Apache пойдёт по симлинку и прочитает .htaccess в той директории, где лежат "настоящие" файлы (а там, например, будет Deny from all)? Ну, и подобные грабли...

Screjet Ну, это само собой. Хотя особо наворачивать не собираюсь...
 
Сверху