【发布时间】:2019-08-16 12:48:27
【问题描述】:
如果文件成功上传到 sftp,我如何获得响应?这是我的代码
@Bean
public SessionFactory<LsEntry> axisSftpSessionFactory() {
DefaultSftpSessionFactory factory = new DefaultSftpSessionFactory(true);
factory.setHost(axisSftpProperties.getSftpHost());
factory.setPort(axisSftpProperties.getSftpPort());
factory.setUser(axisSftpProperties.getSftpUser());
factory.setPassword(axisSftpProperties.getSftpPassword());
factory.setAllowUnknownKeys(true);
return new CachingSessionFactory<>(factory);
}
/**
* Handler message handler.
*
* @return the message handler
*/
@Bean
@ServiceActivator(inputChannel = TO_SFTP_CHANNEL)
public MessageHandler handler() {
SftpMessageHandler handler = new SftpMessageHandler(axisSftpSessionFactory());
handler.setRemoteDirectoryExpression(new LiteralExpression(axisSftpProperties.getSftpRemoteDirectory()));
handler.setFileNameGenerator(message -> (String) message.getHeaders().get(FILENAME));
return handler;
}
@Component
@MessagingGateway
public interface UploadGateway {
@Gateway(requestChannel = TO_SFTP_CHANNEL)
String upload(@Header(FILENAME) String filename, @Payload byte[] bytes);
}
这里的想法是,如果文件没有成功上传到 sftp 以便能够重试,则捕获任何错误。
如果我使用 SftpOutboundGateway 如何设置远程目录路径? SftpOutboundGateway 网关 = new SftpOutboundGateway(sessionFactory(), "put", "payload");
【问题讨论】:
-
当您编辑问题时,我们不会收到通知。每当您进行编辑时,您还应该评论您已这样做,以便我收到通知。
标签: spring-integration spring-integration-sftp