Домашний файлообменник на Perl

    История, собственно говоря, начинается не far far away, а совсем недавно.
    У моих друзей на работе закрыт доступ на все, что только можно, особенно на половину сайтов и FTP. Этот нелицеприятный факт не позволяет быстро, удобно и эффективно обмениваться нам файлами, в результате чего все отправлялось по почте. А задача в данном случае предельно проста — «выложить» в общий доступ какие-нибудь программки, документы или фотки.
    Дома имеется в наличии относительно старенький ноутбук HP NX6125 и канал 10 Мб/с, что, в принципе, достаточно быстро для того, чтобы сделать из этого бекап- и файл-сервер.
    Процесс установки Debian и настройки всего описывать я не буду, так как хабралюди не раз писали по этому поводу отличные статьи. А расскажу лучше о том, как я решил непосредственно саму проблему загрузки файлов.
    Как я уже говорил выше, проблема состоит в том, что у 2/3 нашего коллектива доступен только 80-й порт, т.е. HTTP. Соответственно, самый простой и православный способ загрузки через FTP отпадает по причинам его несовместимости с жизнью. Оставалось только воспользоваться уже готовым файловым менеджером, либо написать оный самостоятельно.
    В результате просмотра десятка-другого проектов я решил все-таки написать что-то свое, поскольку в своем коде разбираться куда проще, а полностью свободных проектов как бы почти и не нашлось.

    Перед написанием были поставлены следующие задачи:

    — сделать все шустро и технологично, вовсю использовать Ajax/XML/Javascript и прочий вебдваноль;
    — простота не в ущерб функциональности;
    — кроссбразуерность и кроссплатформенность (да, чтобы это можно запустить на форточках, солярке и вообще).

    Проект решил писать на Perl'е, так как он рулит и весьма бодро для этой задачи подходит. И вот что получилось в итоге:

    image

    Зверь был весьма не оригинально обозван Home File Sharing и зарелизен под GPL (исходники можно взять здесь).

    Что он умеет:
    — загружать файлы, в том числе и параллельно (можно открыть несколько окошек), отображаются прогресс-бары;
    — копировать/удалять/перемещать/переименовывать файлы и папки;
    — создавать папки.

    Чего он будет уметь, когда у меня дойдут руки:
    — Drag and Drop;
    — архивы (распаковка ZIP на сервере, может, и упаковка).

    Протестировано на платформе Debian (где это чудо сейчас и живет) и Windows XP (где оно просто тестировалось); замечательно работает из Firefox, Opera, Safari, IE7 (в шестерке не тестировал). Для работы требуется только Perl и веб-сервер, никакие базы данных не нужны.

    Да, и конечно же, демку можно увидеть здесь, но делать с файлами в демке нельзя ничего. Так только, полазать, интерфейс посмотреть, кнопочки потыкать.
    Поделиться публикацией

    Похожие публикации

    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 4

      0
      Спасибо, интересно.
      А мне не понравилось, что по иконкам файлов мне лично сложно понять их тип (ну jpeg понятно, а mp3 и zip — ваще не катит). Я не прав?
      З.Ы.Иконками не пользуюсь, пользуюсь FAR'ом. Но если уж есть иконки, то хоть понятные.
        0
        С иконками, откровенно говоря, особо не заморачивался.
        Не подскажите хороший бесплатный иконпак файловых типов?
          0
          можно из KDE взять. (если лицензия их позволяет)
        0
        Интересно было бы сделать HTTP-интерфейс (привет, REST) и реализовать его для какой-нибуть FUSE. Ну или плагином к файловому менеджеру, если Windows.

        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

        Самое читаемое