Forum Webscript.Ru
Программирование => Perl => Тема начата: borkey от 27 Мая 2006, 21:27:05
-
Здравствуйте. Есть у меня задачка - организовать perl сервис по обслуживанию файлового сервера с должной защитой... так вот, хочу попробовать следующую схему...
1. Положить все файлы на сервер в директорию с названием XXX.
2. Все имена файлов + размер описание и и.д. хранить в MySQL таблице.
3. Завести еще одну таблицу, где будут храниться временные ссылки на файлы. Т.е. пользователь кликая "download file" получает некоторый id, и может скачать файл при помощи, скажем, скрипта по этому id, например
get.pl?id=abracadabra.
4. Каждый час, к примеру, будет запускаться скрипт, который будет отслеживать временные ссылки, т.е. те, у которых срок действия истек - попросту удалять.
5. Каждые 2 дня, к примеру, менять имя директории с файлами.
вооот... хочется посоветоваться с профи, так как сам таковым не являюсь.... адекватный ли этот алгоритм? Может кто занимался подобными вещами, подскажите что-нить, может избегу тривиальных ошибок?
Спасибо.
-
хм
а не проще ли выдавать скрпит через прикрепленный файл ?
так можно файлы хранить в директории которая не доступна через http но доступна скрипту. Выдаём файл по ID взятому из таблицы.
-
xames, что вы имеете в виду под "выдавать скрпит через прикрепленный файл" ?!
-
use CGI::Carp qw(fatalsToBrowser);
use CGI;
$query = new CGI;
$fn=$query->param(\'file\');
$filepath="какой то путь до файла";
$bytes = -s "$filepath";
open(F,"$filepath");
binmode F;
print "Content-length: $bytes\\n";
print "Content-Disposition: attachment; filename=имя_файла\\n";
print "Content-type: application/octet-stream\\n\\n";
binmode STDOUT;
print ;
close(F);
примерно так.
-
мм...это понятно, спасибо :) а как запретить доступ к директории через http? просто запаролить при помощи htaccess? или каким-нибудь более простым способом?
-
а установи запрет на скачку, можно вообще на каталок выще чем http разместить )))
-
помимо этого не забудьтье про лимит скорости (для скачивания), поддержку докачки и т.п - короче вы хотите написать антилич...
это хорошее дело... если он будет бесплатным и качественно написанным.
-
cr4ck3r Это будет не открытый ресурс..... на счет лимита скорости надо подумать, на сколько это необходимо, а вот возможность докачки уже реализована.... только не знаю, как определять событие что файл закачан полностью. Разумно считать по логам, но при закачке в несколько потоков не получается 100% точности.... вот думаю, как бы это сделать...
-
у меня есть недописанный скрипт для скачки (он рабочий, но требует доработки)... если найду - скину сюда - там как раз насчет лимита скорости и т.п есть реализация.
-
было бы интересно...
-
антилич оказался довольно большой (несколько файлов), могу на мыло скинуть.
-
cr4ck3r, aukb@yandex.ru
-
serzh@med-index.ru
если можно мне тоже скиньте было бы очень интересно изучить!
-
сори был в отпуску к компу не подходил.
мыльники записал, сегодня вечером вышлю.
антилич писался не мной, а знакомым программером для моего проекта. работает с mysql (в ней хранит ссылки на файлы, кол-во закачек, ограничение на скорость скачки и т.п).
в архиве будут дамп бд (для примера) и несколько файлов.
add//
отправил...