gpt4 book ai didi

spring-integration - 如何使用 Java Config 配置 SFTP 出站网关?

转载 作者:行者123 更新时间:2023-12-01 12:26:15 25 4
gpt4 key购买 nike

我想使用 SFTP 出站网关通过 SFTP 获取 文件,但我只找到使用 XML 配置的示例。如何使用 Java 配置完成此操作?

更新(感谢 Artem Bilan 的帮助)

我的配置类:

@Configuration
public class MyConfiguration {

@Bean
public SessionFactory<LsEntry> sftpSessionFactory() {
DefaultSftpSessionFactory sftpSessionFactory = new DefaultSftpSessionFactory();
sftpSessionFactory.setHost("myhost");
sftpSessionFactory.setPort(22);
sftpSessionFactory.setUser("uname");
sftpSessionFactory.setPassword("pass");
sftpSessionFactory.setAllowUnknownKeys(true);
return new CachingSessionFactory<LsEntry>(sftpSessionFactory);
}

@Bean
@ServiceActivator(inputChannel = "sftpChannel")
public MessageHandler handler() {
SftpOutboundGateway sftpOutboundGateway = new SftpOutboundGateway(sftpSessionFactory(), "get", "#getPayload() == '/home/samadmin/test.endf'");
sftpOutboundGateway.setLocalDirectory(new File("C:/test/gateway/"));
return sftpOutboundGateway;
}

}

我的应用类:

@SpringBootApplication
@EnableIntegration
public class TestIntegrationApplication {

public static void main(String[] args) {
SpringApplication.run(TestIntegrationApplication.class, args);
}
}

现在配置成功,但没有发生 SFTP。需要弄清楚如何请求 SFTP。

最佳答案

引用 Reference Manual :

@Bean
@ServiceActivator(inputChannel = "sftpChannel")
public MessageHandler handler() {
return new SftpOutboundGateway(ftpSessionFactory(), "ls");
}

另请注意下一节中的 Java DSL 示例。

编辑

@Bean
@ServiceActivator(inputChannel = "sftpChannel")
public MessageHandler handler() {
SftpOutboundGateway sftpOutboundGateway = new SftpOutboundGateway(sftpSessionFactory(), "get", "payload");
sftpOutboundGateway.setLocalDirectory(new File("C:/test/gateway/"));
return sftpOutboundGateway;
}

GET SFTP 命令的情况下,expression ctor arg 可能像上面那样 - 只是对所有的 Message.getPayload() 的引用收到的消息。

在这种情况下,您应该向 sftpChannel 发送一个 Message,例如:

new GenericMessage<>("/home/samadmin/test.endf");

因此,/home/samadmin/test.endf 是该消息有效载荷。当它到达 SftpOutboundGateway 时,将根据该消息评估该表达式,并由 SpEL 调用 getPayload()。因此,GET 命令将使用所需的远程文件路径执行。

其他消息可能具有与其他文件完全不同的路径。

关于spring-integration - 如何使用 Java Config 配置 SFTP 出站网关?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39293574/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com