Spring integration 如何从SMBMoteFileTemplate检索InputStream?
我正在使用SpringIntegrationforSMB从windows服务器存储和检索文件。 在我想从服务器检索文件的情况下,我找到了方法“get”,它接收一个lamda函数来处理InputStream,但是我需要返回这个元素,我不想存储在本地然后返回InputStream。 在这件事上有其他选择吗 谢谢大家 我的代码如下:Spring integration 如何从SMBMoteFileTemplate检索InputStream?,spring-integration,Spring Integration,我正在使用SpringIntegrationforSMB从windows服务器存储和检索文件。 在我想从服务器检索文件的情况下,我找到了方法“get”,它接收一个lamda函数来处理InputStream,但是我需要返回这个元素,我不想存储在本地然后返回InputStream。 在这件事上有其他选择吗 谢谢大家 我的代码如下: @Override protected InputStream readMetadataFile(final String filename) throws Fi
@Override
protected InputStream readMetadataFile(final String filename) throws FileNotFoundException {
final File inputFile = new File(filename);
if (this.smbRemoteFileTemplate.exists(filename)) {
this.smbRemoteFileTemplate.get(filename, in -> FileUtils.copyInputStreamToFile(in, inputFile));
return new FileInputStream(inputFile);
}
return null;
}
/**
* Obtain a raw Session object. User must close the session when it is no longer
* needed.
* @return a session.
* @since 4.3
*/
Session<F> getSession();
PS:声誉超过1500的配偶是否可以创建“spring integration smb”标签?再次感谢。RemoteFileTemplate基于
SessionFactory
,并且有一个如下API:
@Override
protected InputStream readMetadataFile(final String filename) throws FileNotFoundException {
final File inputFile = new File(filename);
if (this.smbRemoteFileTemplate.exists(filename)) {
this.smbRemoteFileTemplate.get(filename, in -> FileUtils.copyInputStreamToFile(in, inputFile));
return new FileInputStream(inputFile);
}
return null;
}
/**
* Obtain a raw Session object. User must close the session when it is no longer
* needed.
* @return a session.
* @since 4.3
*/
Session<F> getSession();
让我们希望这个路径对于您的用例来说已经足够了
注意:您有责任在使用后关闭此
InputStream
。否,没有人不会创建spring集成smb
SO标记。这真的是一项开销,问题如此之多。spring集成
足以为您的问题确定上下文。