Java 从远程ftp服务器提取文件内容,而不写入本地磁盘中的文件

Java 从远程ftp服务器提取文件内容,而不写入本地磁盘中的文件,java,ftp,sftp,apache-tika,Java,Ftp,Sftp,Apache Tika,在使用java编程方式建立到远程ftp或sftp服务器的连接后,可以读取/home/www data/content/的文件,而无需写入本地系统中的文件。基本上,我想从该路径提取文件的元数据,而无需下载 更新: 我已经尝试连接到SSH2的一个实现 JSch jsch = new JSch(); session = jsch.getSession(SFTPUSER,SFTPHOST,SFTPPORT); session.setPassword(SFTPPASS); java.util.Proper

在使用java编程方式建立到远程
ftp
sftp
服务器的连接后,可以读取
/home/www data/content/
的文件,而无需写入本地系统中的文件。基本上,我想从该路径提取文件的元数据,而无需下载

更新:

我已经尝试连接到
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();

对于使用JSCH库的SFTP,您应该使用ChannelSFTP.get()方法,并提供不写入磁盘的OutputStream实例(例如ByteArrayOutputStream)。请参见此处的JSCH股票示例:

和JavaDoc for get()方法:

对于FTP,您必须使用其他东西,因为JSCH只支持SFTP协议。

您可能需要尝试一下(虚拟文件系统)

它们有一个相当不错的方法,但是在您的例子中,您可以更改该示例的
process()
方法,让它用TIKA解析文件


使用commons vfs,您只需使用
文件对象
。在FileObject上,您可以调用doGetInputStream(),然后将其交给TIKA进行进一步处理。

这当然是可能的,但您必须提供有关如何从Java代码连接到远程ftp/sftp的更多详细信息-您使用的库etc@rootkit007当前位置我已经用我迄今为止尝试过的内容更新了我的问题。