Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #28, МАРТ 2003 г.

БЕРЕГИТЕ WAREZ! РАСПРЕДЕЛЕННАЯ СИСТЕМА СКАЧКИ

cuttah & Donor

Спецвыпуск Xakep, номер #028, стр. 028-068-1


Хай, любопытный подоночек! Согласись, клево иметь свой варезник. Все за тобой ходят, выпрашивают ссылку или пароль, умоляют на коленях, рыдают - в общем, ты понял ;). Но с варезниками всегда куча траблов: во-первых, стремно открыто хранить у себя варез, кряки, кейгены и прочую незаконную пургу; во-вторых, постоянно не хватает места, и приходится все время искать новое халявное пространство; в-третьих, стоит кому-то капнуть в органоны, что на серваке лежит варез, как хозяева хостинга тут же закроют твою пагу и удалят весь архив. В общем, варезные порталы постоянно закрываются, переезжают с места на место, их хозяева перекачивают мегатонны инфы с одного сервака на другой, тратят кучу времени и нервов, и это все очень большой гимор. Идея намутить свой варезник уже не кажется такой веселой?

ИДЕЯ... НАХОЖУСЬ?!

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

Представь, что все файлы лежат абсолютно на разных серверах, причем одни и те же софтины могут быть продублированы по нескольким адресам. Теперь кто тебе мешает зарегить пару паг на халявных серверах и заюзать свободное место под хранение твоего файла, тогда падение одного сервера не приведет к полной неработоспособности твоего сайта, больше того - какой-нибудь шутник (в погонах и с ксивой) не сможет грохнуть всю базу файлов одним махом, и тебе не придется закачивать пять... э-э-э... гигабайт заново. А главное, никто, кроме тебя, не будет знать, где реально находятся эти файлы. Для посетителя это будет одна и та же страница, он будет топтать ссылки и получать файлы, а длинный нос мы ему обрежем. Еще один плюс в том, что все, что нужно, будет лежать у тебя, и ссылка не перестанет работать через 5 минут после публикации, потому что что-то там за бугром легло в сексуальную позу. Здорово? Ка-а-а-анечна!

Еще, конечно же, станет замечательно, если обновление базы и закачка файлов на армию сервачков будет происходить автоматически и пага портала переколбасится сама. А в чем, собственно, вопрос? Воспользуемся современными серверными технологиями!

А ЧТО НАМ НАДО?

Да только свет в окошке... Хм! Нам нужен хостинг с поддержкой perl либо php и с какой-нибудь SQL базой данных (MySQL, mSQL, Postgress, MS SQL). Остальные сервера просто хранят файлы. На них нужно побольше места, и больше ничего, главное, чтобы к ним был доступ по ftp.

Я, как яростный адепт Perl'а, буду делать все на нем, соответственно на моей тачке тусуется Perl Builder, а гопники-юниксойды могут сидеть в своих NEdit, CoolEdit, vi, emacs и прочей дребедени (шучу! не бейте ногами!).

КАК РЕАЛИЗОВАТЬ?

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

Для начала я обрисую схему хранения базы. Она будет храниться в DBM хэше (что стандартно для многих perl программ). По идентификатору (ключу) хэша (ассоциативного массива) будут возвращаться имя файла, его описание, а также список урлов, где его можно скачать. Пользователь будет видеть только имя файла и его описание. А все действия по перекачке софта возьмет на себя наш скрипт.

Содержание  Вперед на стр. 028-068-2