LINUX.ORG.RU

Доступ к файловой системе по HTTP


0

2

Хотел посоветоваться как лучше решить следующую архитектурную задачку.

В локальной сети есть файл сервер. Сейчас он умеет давать доступ к файлам по smb и ftp, но можно еще чему ни будь научить. Настроена авторизация и права в Active Directory. Сервер никаким способом не сообщается с Internet.

Есть Apache, который стоит в DMZ. На нем живет Wiki. Тоже настроена авторизация в AD. К нему есть доступ из Internet и он видит файловый сервер.

Необходимо внешним пользователям дать доступ к файлам на файловом сервере.

При этом хотелось бы соблюсти следующие требования:
1. По возможности внешний пользователь должен использовать для работы только браузер, в крайнем случае ftp клиент. Другими словами весь софт на клиентской машине должен быть из коробки (Windows 7)
2. У пользователя должна быть возможность делать upload фалов на файловый сервер.
3. Желательно чтобы в Wiki можно было делать прямые ссылки на файлы типа http://wikihost/fs/filename.txt Что бы по ним пользователь мог напрямую скачать файл с файлового сервера.

У меня пока решение одно:
1. На Apache поднимается mod_proxy_ftp. Это позволяет решить все проблемы, кроме upload
2. Для обеспечения upload на Apache поднимается web based ftp

Но тут куча проблем, например у mod_proxy_ftp сносит башню, если в именах файлов есть пробелы или русские символы. Все web based ftp достаточно наворочены что абсолютно излишне...

Как это можно сделать по-другому?
Может есть какие ни будь фрэймворки для работы с файлами по HTTP?
Или можно как-то mod_proxy_ftp вылечить?


Ответ на: комментарий от baverman

С авторизацией в AD? И как с правами быть, если все пользователи начнут ходить от имени Apache?

Может что-то готовое есть? Потому что в скрипте будет явно больше 10 строк.

dvalov ()
Ответ на: комментарий от dvalov

С авторизацией в AD?

И? Ты же с ftp сервером будешь работать, а через что он делает авторизацию как-то параллельно.

все пользователи начнут ходить от имени Apache?

Что?

Потому что в скрипте будет явно больше 10 строк.

Получение user:pwd из запроса, возврат результата file_get_contents. Плюс обработка ошибок. Как раз 10 строк.

baverman ★★★ ()
Ответ на: комментарий от dvalov

а что с правами доступа делать?

Ничего не делать. Права доступа проверяет ftp сервер.

P.S. А вообще, что мешает пробросить фтп наружу?

baverman ★★★ ()
Ответ на: комментарий от dvalov

а что делать с прямыми ссылками?

Их же обрабатывает скачивающий скрипт.

baverman ★★★ ()
Ответ на: комментарий от Nastishka

Я так понимаю, что для WebDAV нужен специальный софт на клиенте.
Кроме того, с WebDAV не получиться делать ссылки на ресурсы типа: http://<hostname>/pub/test/test.txt

dvalov ()
Ответ на: комментарий от dvalov

>Я так понимаю, что для WebDAV нужен специальный софт на клиенте.

Кроме того, с WebDAV не получиться делать ссылки на ресурсы типа: http://<hostname>/pub/test/test.txt


Чо-чо?

Mr_Alone ★★★★★ ()
Ответ на: комментарий от Nastishka

Не я один такой.

Ага, не я один подумало WebDAV. Я не безнадёжен.

Camel ★★★★★ ()
Ответ на: комментарий от dvalov

>Я так понимаю, что для WebDAV нужен специальный софт на клиенте.

Нет. ЕМНИП, даже в винде монтируется изкоробки.

Кроме того, с WebDAV не получиться делать ссылки на ресурсы типа: http://<hostname>/pub/test/test.txt


Как это - не получится? Получится, но открываться оно будет браузером

router ★★★★★ ()
Ответ на: комментарий от router

>Нет. ЕМНИП, даже в винде монтируется изкоробки.

Правда, только http. https эти альтернативные «оси» умеет не раньше чем с 2k8

router ★★★★★ ()
Ответ на: комментарий от router

Поставил сегодня webdav на apache
Все хорошо работает из браузера, но вот смапить диск не получилось не Win7 не в Windows Server 2003
После попытки найти решение в инете, пришел к выводу, что гемороя с этим выше крыши и толком это так и не работает....

:(

У кого ни будь получалось заставить работать связку apache + mod_dav + win 7

dvalov ()
Ответ на: комментарий от dvalov

В продолжение темы...
webdav под Win 7 победился с помощью NetDrive.

А вот как быть с правами? Все файлы на сервере создаются от имени пользователя apache.
Как управлять правами доступа к ним?

dvalov ()
Ответ на: комментарий от dvalov

Как управлять правами доступа к ним?

Элементарно: в БД прописывайте права. Получите 2 БД: одна для логинов/паролей/уровней допуска, вторая для прав доступа на файлы.

Eddy_Em ☆☆☆☆☆ ()
Ответ на: комментарий от baverman

У меня пользователи живут в AD и правами хотелось бы рулить оттуда.
Я так понимаю права на доступ к файлам и папкам настраиваются только в конфигурации Apache...
т.е. нельзя менять права доступа через WebDav просто изменяя права доступа к файлам в файловой системе...
:(

dvalov ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.