PDA

Просмотр полной версии : PHP: организование временной ссылки


elf
07.05.2008, 15:39
Доброе время суток!
Как организовать временную ссылку на файл(*.zip, *.rar, *.mp3 & etc.) с помощью PHP?
Сделать так, примерно такая ссылка: www.site.com/downloads/file.zip должен работать в течение часа или сделать рабочим до завершения скачивания файла.

Игорь Бронников
07.05.2008, 17:13
Вариантов много.

1.Можно скриптом менять .htaccess и привязывать доступ к файлу по IP.

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

3.Можно копировать файл в папку со случайным именем и давать на него ссылку

elf
07.05.2008, 17:20
Вариантов много.

1.Можно скриптом менять .htaccess и привязывать доступ к файлу по IP.

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

3.Можно копировать файл в папку со случайным именем и давать на него ссылку

Я хочу выбрать 3-способ. Но как удалить после скачивания тот папку?

Игорь Бронников
07.05.2008, 17:24
Вариантов много.

1.Можно скриптом менять .htaccess и привязывать доступ к файлу по IP.

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

3.Можно копировать файл в папку со случайным именем и давать на него ссылку

Я хочу выбрать 3-способ. Но как удалить после скачивания тот папку?
rmdir()
Имя папки видимо придется запомнить в базе. И время, когда папку нужно удалить.

netklon
07.05.2008, 18:34
Если есть возможность использовать lighttpd для скачивания - можете использовать его модуль mod_secdownload (http://trac.lighttpd.net/trac/wiki/HowToFightDeepLinking).

Ruslan Juldashev
07.05.2008, 19:39
Как организовать временную ссылку на файл(*.zip, *.rar, *.mp3 & etc.) с помощью PHP?
http://habrahabr.ru/blog/php/38954.html
Описывается проект создания аналога webfile.ru, там также есть решение Вашей проблемы.

Dolphin
07.05.2008, 19:46
2.Можно отдавать скриптом, но это ненужная нагрузка сервер, и вряд-ли будет работать докачка, если хорошенько не постараться.

Я присоединяюсь к этому варианту. Нагрузка на сервер не такая уж и страшная да и решатся проблема двумя страницами кода (тут же и запись статистики, и еще кое-какая лабуда)

netklon
08.05.2008, 06:50
2.Можно отдавать скриптом, но это ненужная нагрузка сервер, и вряд-ли будет работать докачка, если хорошенько не постараться.

Я присоединяюсь к этому варианту. Нагрузка на сервер не такая уж и страшная да и решатся проблема двумя страницами кода (тут же и запись статистики, и еще кое-какая лабуда)
А если сотня диалап юзеров, которые будут час качать 20-меговый файл?

elf
08.05.2008, 09:04
Всем спасибо!!!

rmdir()
Имя папки видимо придется запомнить в базе. И время, когда папку нужно удалить.
Буду создавать таблицу dload_info, полями file_path, unlik_time. Этого я понял. Тогда надо писать постоянно-проверяющий скприпт для таблиц dload_info. А как это делается?

Игорь Бронников
08.05.2008, 09:13
Всем спасибо!!!

rmdir()
Имя папки видимо придется запомнить в базе. И время, когда папку нужно удалить.
Буду создавать таблицу dload_info, полями file_path, unlik_time. Этого я понял. Тогда надо писать постоянно-проверяющий скприпт для таблиц dload_info. А как это делается?

Можно запускать проверяющий скрипт по CRON.
Если нагрузка небольщая, можно проверять и ненужные удалять при каждом запуске скрипта.

elf
08.05.2008, 09:47
Можно запускать проверяющий скрипт по CRON.
Если нагрузка небольщая, можно проверять и ненужные удалять при каждом запуске скрипта.
Что такое CRON? Покажите пожалуйста одинь пример, если не трудно.

Игорь Бронников
08.05.2008, 09:54
Можно запускать проверяющий скрипт по CRON.
Если нагрузка небольщая, можно проверять и ненужные удалять при каждом запуске скрипта.
Что такое CRON? Покажите пожалуйста одинь пример, если не трудно.

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

http://ru.wikipedia.org/wiki/Cron

elf
08.05.2008, 10:27
2 Игорь Бронников
как я понял, этот CRON зависимо от хостеров. Если так, такой способ мне не подходять...

Игорь Бронников
08.05.2008, 10:46
2 Игорь Бронников
как я понял, этот CRON зависимо от хостеров. Если так, такой способ мне не подходять...

Можно сделать "эмуляцию" CRON.
Например заставить Google периодически проверять /cron/rss.php,
(подписавшись на /cron/rss.php).
rss.php будет отдавать валидный RSS и заодно делать нужную работу...

netklon
08.05.2008, 10:49
Можно сделать "эмуляцию" CRON.
Например заставить Google периодически проверять /cron/rss.php,
(подписавшись на /cron/rss.php).
rss.php будет отдавать валидный RSS и заодно делать нужную работу...
Жесть (-; Здорово придумано.

elf
08.05.2008, 11:06
2 Игорь Бронников
Вы имеете ввиду Google Reader?

Игорь Бронников
08.05.2008, 11:17
2 Игорь Бронников
Вы имеете ввиду Google Reader?
Да.
Это Google Reader взял для примера.
Ресурсов, периодически проверяющих сайт много.
Тот-же uptime.ru

ZaR
08.05.2008, 11:59
передача данных через скрипт действительно жрёт просто огромное количество ресурсов, проверено в боевых условиях.

единственный адекватный вариант - http://habrahabr.ru/blog/php/38954.html, как уже сказано выше.