2013-04-08 2 views
1

Я хочу прочитать содержимое удаленного каталога с помощью java.Чтение удаленного каталога Ubuntu с помощью ssh в java?

Этот каталог находится на машине под управлением Ubuntu. Щелчок правой кнопкой мыши по папке должен предоставить опцию общей папки и установленный клиент samba для совместного использования Windows, но у меня нет машины с Windows.

Я искал java api library для доступа к содержимому удаленного каталога?

Пользователь будет указывать только имя пользователя, пароль, ip и имя папки.

например [//172.17.0.1/sharefolder/demo/]

Спасибо.

+0

Я думаю, что здесь нужно указать, будет ли он для SFTP или SAMBA внутри заголовка и органа вопросов. –

ответ

0

Возможно, вы найдете The Java CIFS Client Library, имеющий необходимый API - он полезен как для сервера, так и для клиента.

Вот пример, взятый из их документации для получения файла:

import jcifs.smb.*; 

jcifs.Config.setProperty("jcifs.netbios.wins", "192.168.1.220"); 
NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication("domain", "username", "password"); 
SmbFileInputStream in = new SmbFileInputStream("smb://host/c/My Documents/somefile.txt", auth); 
byte[] b = new byte[8192]; 
int n; 
while((n = in.read(b)) > 0) { 
    System.out.write(b, 0, n); 
} 
+0

Позволяет ли JCIFS lib читать содержимое каталогов, даже если весь кластер является только машиной Ubuntu? Во-вторых, мы можем использовать ssh для выполнения одного и того же процесса в java? –

+0

Похоже, что вам нужен API на основе sftp, а не SMB/CIFS. Вы должны отредактировать вопрос, чтобы соответствующим образом отразить это. Во всяком случае, надеюсь, ответы, которые Menelaos вам поможет. Удачи! – Ahmed

1

Для Samba Поделиться: Даже SAMBA акции Linux использовать тот же протокол, виндовых. Итак, сообщение здесь может помочь: How can I mount a windows drive in Java? В принципе, вы можете установить общее местоположение в качестве сетевого диска, используя команду «net use». Вы можете вызвать это либо через консоль Windows, либо через Java-процесс.

Для расположения SFTP:

Если у вас нет проблем с вызовом/с помощью внешней команды можно использовать SSHFS (или из Java или через процесс), чтобы смонтировать удаленный каталог в локальная папка.

См: http://numberformat.wordpress.com/2010/03/01/how-to-mount-a-remote-ssh-filesystem-using-sshfs/

Если вы хотите чистый Java, как получить доступ к SFTP, я прочитал, что библиотека называется JSch можно использовать для доступа к SFTP непосредственно из Java. См:

Если это другой тип просьба указать

+0

Спасибо за полезную ссылку. Но я ищу API на основе JAVA для передачи информации о пользователе и системе, затем обращаюсь к каталогу без установки.Я создал несколько APi, таких как sshj, JCFS и т. Д. Но все они используют безопасный FTP [get or put] для файлов. –

+0

Привет, спасибо! Вопрос: протокол, использующий ваш SFTP, Samba или другой? –

+0

SFTP, можем ли мы пройти все файлы и папки? Проверьте, является ли это каталогом или нет? –

0

Для SFTP рассмотреть возможность использования JSCAPE-х Secure FTP Factory. Документацию с примерами кода можно найти here.