Cougar
Кошак
Создание временных ссылок
Задача такая:
Дать пользователю временную ссылку для загрузки файла, которая по прошествии определённого времени удаляется.
Порылся по форуму - нашёл то, что и предполагал - скачивать файл не напрямую, а через скрипт и хранить всю информацию о ссылке в БД. Это понятно, в этом случае вопросов нет - реализация предельно ясна и проста.
В поисках других решений в голове вызрел ещё один вариант:
Сами файлы хранить вне DocumentRoot (либо же в каталоге, который "Deny from all" - это непринципиально). Пользователю же выдавать ссылку на автоматически созданный симлинк к нужному файлу.
Удалять временные ссылки вроде бы тоже очень просто - смотрим дату создания симлинка. Как вариант, можно ещё учитывать размер скачиваемого файла, исходя из того, что для больших файлов необходимо больше времени для скачивания.
Как по мне - красивое решение, и (что немаловажно) нересурсоёмкое.
Но есть подозрения: если оно мне кажется таким красивым и правильным - значит, я что-то упустил.
А теперь - внимание, вопрос!
Какие могут быть подводные камни в реализации этого механизма с симлинками (разумеется, FollowSymlinks используется и опция разрешена для оверрайда)?
-~{}~ 18.01.05 14:08:
PS: Хм... ошибся форумом... собирался в "для продвинутых запостить". Но если администрация считает, что этому топику там не место - пусть тогда здесь остаётся...
Задача такая:
Дать пользователю временную ссылку для загрузки файла, которая по прошествии определённого времени удаляется.
Порылся по форуму - нашёл то, что и предполагал - скачивать файл не напрямую, а через скрипт и хранить всю информацию о ссылке в БД. Это понятно, в этом случае вопросов нет - реализация предельно ясна и проста.
В поисках других решений в голове вызрел ещё один вариант:
Сами файлы хранить вне DocumentRoot (либо же в каталоге, который "Deny from all" - это непринципиально). Пользователю же выдавать ссылку на автоматически созданный симлинк к нужному файлу.
Удалять временные ссылки вроде бы тоже очень просто - смотрим дату создания симлинка. Как вариант, можно ещё учитывать размер скачиваемого файла, исходя из того, что для больших файлов необходимо больше времени для скачивания.
Как по мне - красивое решение, и (что немаловажно) нересурсоёмкое.
Но есть подозрения: если оно мне кажется таким красивым и правильным - значит, я что-то упустил.
А теперь - внимание, вопрос!

Какие могут быть подводные камни в реализации этого механизма с симлинками (разумеется, FollowSymlinks используется и опция разрешена для оверрайда)?
-~{}~ 18.01.05 14:08:
PS: Хм... ошибся форумом... собирался в "для продвинутых запостить". Но если администрация считает, что этому топику там не место - пусть тогда здесь остаётся...