HFS — программа под Windows, предназначенная для организации доступа к файлам посредством HTTP. Удобный интерфейс, отсутствие необходимости настройки дополнительных клиентов (FAR, Total Commander и прочих), простота — вот основные достоинства, которые оценит пользователь системы. Кроме того, программа бесплатна.
http://www.rejetto.com/hfs/ - сайт разработчика, откуда можно скачать программу HFS.
Альтернативные ссылки, если сайт разработчика не работает:
hfs.zip - программа HFS;
hfs2Service1.0-fixed.zip - для запуска HFS в качестве сервиса.
Несмотря на то, что программа очень проста, она не имеет русскоязычного интерфейса. Поэтому здесь я подробно напишу, как ей пользоваться.
Программа работает без установки, в общем случае ее можно просто скопировать в любую папку, например Program Files:
После размещения, можно ее запускать и настраивать. Программа работает как HTTP-сервер, наподобие Apache, то есть при ее закрытии загрузить файлы будет невозможно.
Поэтому необходимо организовать работу программы в качестве сервиса. Можно использовать метод на основе srvany, как это описывается по ссылке http://support.microsoft.com/kb/137890/ru. Однако, этот метод не является оптимальным из-за следующего неприятного эффекта: если пользователь войдет на сервер по RDP, а затем выйдет (осуществит logoff), то HFS будет выгружен из памяти, попросту говоря, он «вылетит». Чтобы HFS работала надежно как сервис, было создано отдельное приложение – HFS-Service, которое можно скачать отсюда. Оно очень просто в использовании, и также не требует установки. Его можно скопировать в ту же папку, что и HFS.
Теперь рассмотрим основные этапы работы с HFS. Войдя в программу, лучше перейти в экспертный режим, так как там, по сравнению с обычным, доступно больше настроек:
После этого следует указать порт, который будет слушать программа и по которому будет доступен веб-интерфейс:
У любого сервера есть IP – адрес, а может быть и не один (различные сетевые карты, различные каналы связи и прочее). Поэтому нужно указать программе, к какому IP – адресу она будет прикреплена:
Так как мы хотим, чтобы пользователи загружали файлы в определенную папку на сервере, ее необходимо создать обычным способом:
Далее, перетащить папку мышью в левое окно программы. Появится всплывающее окно, спрашивающее, как будет интерпретирована папка внутри программы:
Нужно выбрать Real folder.
Каждому пользователю-клиенту, для удобства, можно выделить собственную папку.
Теперь можно зайти в веб-интерфейс и посмотреть, отображается ли созданная папка:
Как видно, она отображается. Но к ней не настроен доступ на чтение и запись.
Доступ на чтение для конкретной папки настраивается с помощью меню Restrict Access. Для вызова нужно нажать на папку правой кнопкой мыши:
Отсюда можно создать аккаунт пользователю для доступа или разрешить доступ анонимному пользователю.
Если мы уже создали нескольких пользователей, то можно будет выбрать, кому давать доступ на чтение, а кому нет:
Чтобы дать кому-то возможность загружать файлы, нужно выбрать пункт меню Upload:
Можно дать возможность загрузки для всех (Anyone), или выдать такие права только избранным:
Теперь мы можем загружать файлы через веб-интерфейс:
В общем случае управление пользователями и их правами осуществляется следующим образом:
Следует отметить, что все настройки по умолчанию сохранятся для текущего пользователя. То есть никакой другой пользователь (в том числе System) наши изменения настроек не увидит, и программа будет запускаться для каждого пользователя со своими настройками. Чтобы настройки сохранялись для всех пользователей, нужно выбрать пункт меню Save options:
Программа сохраняет настройки в реестре, то есть их можно переносить с компьютера на компьютер и от пользователя к пользователю:
Веб-интерфейс программы по умолчанию невзрачный, стандартный. Его можно полностью изменить, применив любые CSS-стили, HTML-разметку и изображения (вставить логотип фирмы и прочее), русифицировать:
Если смущает номер порта в URL, можно настроить Apache для проксирования по такой схеме:
LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_http_module modules/mod_proxy_http.so Listen 127.0.0.1:80 <VirtualHost 127.0.0.1:80> ServerName server_name ProxyPass / http://hfs:8000/ ProxyPassReverse / http://hfs:8000/ </VirtualHost>