抢占先机
VMware 提供培训和认证,以加速您的进步。
了解更多我代表 Spring Integration 团队宣布发布另一个 Spring Integration 扩展。 这次是用于 Server Message Block 的 Spring Integration,其 artifact 是 spring-integration-smb.0.5.0.RELEASE
,可在 Release Repository 和 Maven Central 中找到。
该项目已经存在一段时间了,但直到最近才获得足够的社区吸引力来保证发布。 因此,首先要感谢您,社区,感谢您的贡献!
Java CIFS 客户端库已被选为 CIFS/SMB 网络协议的 Java 实现。 其 SmbFile
抽象被简单地包装到 Spring Integration 的“远程文件”基础中,例如 SmbSession
、SmbRemoteFileTemplate
等。
SMB 通道适配器和支持类实现与 (S)FTP 或 AWS S3 协议的现有组件完全相似。 因此,如果您熟悉这些组件,那么使用此扩展非常简单。 但无论如何,这里有一些关于现有组件的介绍
为了在本地下载 SMB 文件,提供了 SmbInboundFileSynchronizingMessageSource
。 它是 AbstractInboundFileSynchronizingMessageSource
的简单扩展,需要注入 SmbInboundFileSynchronizer
。 对于过滤远程文件,您仍然可以使用任何现有的 FileListFilter
实现,但提供了特定的 SmbRegexPatternFileListFilter
和 SmbSimplePatternFileListFilter
。 对于 XML 配置,提供了 <int-smb:inbound-channel-adapter>
组件。
对于将文件传输到 SMB,还没有一些 SMB 特定的要求,因此对于 XML <int-smb:outbound-channel-adapter>
组件,我们简单地重用现有的 FileTransferringMessageHandler
。 在 Java 配置的情况下,应该为 FileTransferringMessageHandler
提供 SmbSessionFactory
(或 SmbRemoteFileTemplate
),仅此而已!
@ServiceActivator(inputChannel = "storeToSmb")
@Bean
public MessageHandler smbMessageHandler(SmbSessionFactory smbSessionFactory) {
FileTransferringMessageHandler<SmbFile> handler =
new FileTransferringMessageHandler<>(smbSessionFactory);
handler.setRemoteDirectoryExpression(
new LiteralExpression("remote-target-dir"));
handler.setFileNameGenerator(m ->
m.getHeaders().get(FileHeaders.FILENAME, String.class) + ".test");
handler.setAutoCreateDirectory(true);
return handler;
}
我们希望在直接进入 1.0.0.RELEASE
之前听到社区的任何反馈,所以请不要犹豫通过任何可用的沟通渠道与我们联系!