2010-11-04 1 views
2

Я ищу, чтобы сделать небольшое приложение, которое позволяет человеку получать доступ к файлам на своем компьютере удаленно. Файлы обслуживаются демоном, запущенным на машине, и подают файлы на веб-сервер по требованию.Удаленный клиент доступа к файлам

Какой протокол подходит для такого рода целей? Я не хочу использовать сырые сокеты (или FTP), чтобы попытаться избежать проблем с брандмауэром. Websockets может быть хорошей альтернативой. Есть ли другие способы сделать это?

Есть ли что-то подобное для Java или любого другого языка? Я ищу исходный код, поэтому закрытые исходные приложения не могут быть и речи. Мне также нравятся другие полезные указатели, которые заставляют меня начать в правильном направлении.

ответ

0

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

0

По мне, использование java.nio будет оптимальным решением. С помощью пакета java.nio вы можете загрузить полный файл и отправить его по сети в соответствии с запросом. Это означает, что когда кто-то запрашивает файл. Он не будет напрямую загружать полный файл на удаленный клиент, вместо этого приложение будет загружать байт содержимого, полученного от сервера. С помощью класса MappedByteBuffer и FileChannel пакета java.nio его можно легко реализовать.

Ниже ссылка должна помочь вам реализовать решение. http://rox-xmlrpc.sourceforge.net/niotut/

0

Моей первой мыслью было бы почему изобретать колесо. Просто запустите веб-сервер на компьютере с инсайдерскими лицами и настройте его так, чтобы файлы, представляющие интерес, были доступны через HTTP.

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

Предполагая, что у вас есть интернет-ориентированный веб-сервер, вы можете настроить Apache httpd mod_proxy на прокси-сервер через веб-сервер, работающий на рабочем столе. Вы можете найти mod_proxy документации на линии, но голый минимум конфигурации будет

ProxyRequests on 
ProxyPass /computer/abc http://abc.internalnet/somewhere/ 
ProxyPassReverse /computer/abc http://abc.internalnet/somewhere/ 
+0

Но я не хочу, чтобы запустить полную взорван веб-сервер на чьей-то машины в основном из-за ошибок, конфигурации. Конечно, все, что я запускаю, будет напоминать веб-сервер, но я ищу что-то легкое и легко настраиваемое. Kinda, как окна livehare. – GlGuru