首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从远程ftp服务器提取文件内容,而不写入本地磁盘中的文件

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

Stack Overflow用户
提问于 2013-02-18 19:50:10
回答 2查看 2.5K关注 0票数 0

在以编程方式建立到远程ftpsftp服务器的连接之后,可以使用java读取/home/www-data/content/文件,而无需写入本地系统中的文件。基本上,我希望在不下载的情况下使用阿帕奇蒂卡从该路径中提取文件的元数据。

更新:

我试着连接到JSch,它是SSH2的一个实现。

代码语言:javascript
复制
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();
EN

回答 2

Stack Overflow用户

发布于 2013-02-18 20:26:48

对于使用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,long)

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

票数 1
EN

Stack Overflow用户

发布于 2013-02-19 08:05:22

您可能需要尝试Apache Commons VFS (虚拟文件系统)。

它们有一个相当不错的一个简单的SFTP文件下载示例,但在您的示例中,您只需更改该示例的process()方法,并让它使用TIKA解析文件。

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14944178

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档