Файловый менеджер поверх HTTP
 
Исходный код:

Описание

Программа представляет собой файловый менеджер, работающий поверх протокола HTTP. Предусматривает возможность выполнения команд как интерактивно (посредством WEB-интерфейса), так и программно (с помощью дополнительного клиентского perl-пакета). Клиентская часть генерируется самой программой и может быть получена в виде файла по запросу (выполняется только интерактивно), что позволяет получать всегда совместимую клиентскую часть.

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

Основной упор сделан на надёжность передачи данных и минимизацию трафика, что важно как для медленных и ненадежных модемных соединений, так и для быстрых, где важен объем информации. Настоящая версия (0.6) позволяет

  • Получать подробный листинг директории с возможностью рекурсивного обхода подкаталогов
  • Создавать и удалять каталоги
  • Загружать и выгружать файлы
  • Корректно работать с большими бинарники
  • Загружать файлы perl-скриптов (определяются расширением) с изменением первой строки (путь к интерпретатору) а так же текстовые с приведением к системному переводу строки

Требования

  • Модули
    • CGI
    • HTTP::Request::Common (LWP)
    • LWP::UserAgent (LWP)
    • IO::Handle
    • Digest::MD5
  • Windows
    • AS perl 5.6.1 build 635 или старше (ВАЖНО для корректной работы LWP!)

Планы

  • Подсчет трафика
  • Компрессия данных
  • Фрагментация больших файлов
  • Сопряжение версий протоколов
  • Отбор файлов по регэкспам

История изменений

2003-02-18
  • Исправлен баг Out of memory при работе с большими файлами.
  • Сокращен расход памяти.
  • Клиентская часть генерируется автоматически и может быть получена посредством интерфейса.
  • Модуль разбит на составные пакеты.
  • Добавлен пакет webutils с пробными функциями зеркалирования.
  • Изменился принцип формирования страниц помощи и формы (наконец то избавился от кривого хелпа).
2003-02-05
  • Команда LIST, при передаче в качестве ARG2 непустого значения, выводит список содержимого вложенных директорий.
  • Для облегчения работы заюзан модуль IO::Handle.
  • Для корретного расчета контрольных сумм perl-пакетов в раздел txt типа файлов добавлено расширение ".pm".
 
Автор: Whirlwind
 
Оригинал статьи: http://woweb.ru/publ/58-1-0-426