0

Java を使用してプログラムでリモートftpまたはサーバーへの接続を確立した後、ローカル システムのファイルに書き込むことなくファイルを読み取ることができます。基本的には、ダウンロードせずにそのパスからApache Tikaを使用してファイルのメタデータを抽出したいと考えています。sftp/home/www-data/content/

アップデート :

の実装であるJSchに接続しようとしましたSSH2

JSch jsch = new JSch();
session = jsch.getSession(SFTPUSER,SFTPHOST,SFTPPORT);
session.setPassword(SFTPPASS);
java.util.Properties config = new java.util.Properties();
config.put("StrictHostKeyChecking", "no");
session.setConfig(config);
session.connect();
4

2 に答える 2

1

JSCH ライブラリを使用する SFTP の場合、ChannelSFTP.get() メソッドを使用し、ディスクに書き込まない OutputStream インスタンス (ByteArrayOutputStream など) を指定する必要があります。ここでJSCHストックの例を参照してください:

http://www.jcraft.com/jsch/examples/Sftp.java.html

get() メソッドの JavaDoc:

http://epaul.github.com/jsch-documentation/javadoc/com/jcraft/jsch/ChannelSftp.html#get(java.lang.String,java.io.OutputStream,com.jcraft.jsch.SftpProgressMonitor,int,長いです)

JSCH は SFTP プロトコルのみをサポートするため、FTP の場合は別のものを使用する必要があります。

于 2013-02-18T20:26:48.937 に答える
1

Apache Commons VFS (Virtual File System)を試してみることをお勧めします。

シンプルな SFTP ファイルのダウンロードのかなりまともな例がありますが、あなたの場合はprocess()、その例の方法を変更して、TIKA でファイルを解析させることができます。

commons vfs を使用すると、FileObject. FileObject で doGetInputStream() を呼び出すことができ、それをさらに処理するために TIKA に引き渡すことができます。

于 2013-02-19T08:05:22.587 に答える