Как обслуживать файлы в Drupal без использования ссылок?

Как я могу обслуживать файлы в Drupal, не раскрывая ссылку, которую можно использовать повторно? Такого рода вещи обычно обрабатываются обратными передачами, например, в .NET, но я не могу найти никакой документации для выполнения этого в Drupal.

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

Заранее спасибо!


person anschauung    schedule 28.06.2009    source источник


Ответы (2)


Вы должны написать модуль для управления одноразовыми URL-адресами и регистрации доступа к ним.

Модуль будет использовать функцию PHP fread() для обслуживания файла из какого-то частного места.

person Ben Hammond    schedule 01.07.2009
comment
Я собрал небольшое доказательство концепции, основанное на вашем предложении, и до сих пор все работает как по маслу. Спасибо! - person anschauung; 02.07.2009

Вы можете сделать это на уровне веб-сервера, сэкономив на загрузке кода drupal + db: например, с lighttpd вы можете использовать модуль mod-trigger-b4-dl, чтобы иметь URL-адреса с ограниченной действительностью, либо используя промежуточное объявление, либо обратный вызов проверки в друпал.

Дополнительные сведения см. в мод триггер b4 dl.

person FGM    schedule 28.06.2009
comment
Интересно -- спасибо! Есть ли аналогичная функция в Apache, о которой вы знаете? - person anschauung; 28.06.2009
comment
Боюсь, это вполне может быть эксклюзивом lighttpd. Обратите внимание, что объединить оба сервера несложно. - person FGM; 29.06.2009