Spring Integration SMB 扩展 0.5.0 版本现已可用

发行版 | Artem Bilan | 2017年1月18日 | ...

我谨代表 Spring Integration 团队宣布发布另一个 Spring Integration 扩展。这次是用于服务器消息块 (Server Message Block) 的 Spring Integration,其构件为spring-integration-smb.0.5.0.RELEASE,可在发行版仓库和 Maven Central 获取。

该项目已经存在一段时间了,但直到最近才获得了足够的社区关注,才值得发布。因此,首先要感谢您和社区的贡献!

已选择Java CIFS 客户端库作为 CIFS/SMB 网络协议的 Java 实现。它的SmbFile抽象被简单地包装到 Spring Integration 的“远程文件”基础之上,例如SmbSessionSmbRemoteFileTemplate等。

SMB 通道适配器和支持类的实现与现有(S)FTPAWS S3协议组件完全相似。因此,如果您熟悉这些组件,则使用此扩展非常简单。但无论如何,这里有一些关于现有组件的说明

SMB 入站通道适配器

为了将 SMB 文件下载到本地,提供了SmbInboundFileSynchronizingMessageSource。它是AbstractInboundFileSynchronizingMessageSource的简单扩展,需要注入SmbInboundFileSynchronizer。对于过滤远程文件,您仍然可以使用任何现有的FileListFilter实现,但提供了特定的SmbRegexPatternFileListFilterSmbSimplePatternFileListFilter。对于 XML 配置,提供了<int-smb:inbound-channel-adapter>组件。

SMB 出站通道适配器

目前还没有针对将文件传输到 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版本之前,我们希望听到社区的任何反馈,因此,请随时通过任何可用的沟通渠道与我们联系!

项目页面 | 帮助 | 聊天

获取 Spring 新闻通讯

通过 Spring 新闻通讯保持联系

订阅

领先一步

VMware 提供培训和认证,以加速您的进步。

了解更多

获取支持

Tanzu Spring在一个简单的订阅中提供对OpenJDK™、Spring和Apache Tomcat®的支持和二进制文件。

了解更多

即将举行的活动

查看 Spring 社区中所有即将举行的活动。

查看全部