SFTP 上传文件到同一远程服务器上的多个目录
SFTP upload file to multiple directories on the same remote server
我已经使用示例 here 实现了 SFTP 上传到远程服务器。
我的要求是我必须将同一个文件上传到同一台服务器上的多个目录。目录的确切数量或位置将是已知的 post-production.
目前,我的实现允许通过在消息处理程序上设置 remoteDirectoryExpression
来上传到单个服务器上的单个目录。 remoteDirectoryExpression
来自 属性 文件。预计其余目录将以逗号分隔的方式配置在相同的 属性 上。我希望我的实现从 属性 中提取每个以逗号分隔的目录,并将文件上传到每个目录。
这可能吗?我遇到了发布-订阅渠道,但目前正在努力了解如何将它们包含在我的实施中。即使那样,pub-sub 通道似乎也需要在代码中进行预配置,其中一个通道 = 一个目录。那我走对了吗?
没有什么built-in可以做到这一点。
最简单的方法是在上游创建自定义拆分器并使用 header 中的目录发出 n 条消息,然后在远程目录表达式中使用 header 值。
尝试使用 publishSubscribeChannel
.publishSubscribeChannel(s -> s
.subscribe(f -> f
.handle(Sftp.outboundAdapter(sftpSessionFactory())
.remoteDirectory(getRemoteRootDir() + remoteDirectory1)
.temporaryFileSuffix(".tmp")))
.subscribe(f -> f
.handle(Sftp.outboundAdapter(sftpSessionFactory())
.remoteDirectory(getRemoteRootDir() + remoteDirectory2)
.fileNameExpression(fileRenameExpression)
.temporaryFileSuffix(".tmp")))
我已经使用示例 here 实现了 SFTP 上传到远程服务器。
我的要求是我必须将同一个文件上传到同一台服务器上的多个目录。目录的确切数量或位置将是已知的 post-production.
目前,我的实现允许通过在消息处理程序上设置 remoteDirectoryExpression
来上传到单个服务器上的单个目录。 remoteDirectoryExpression
来自 属性 文件。预计其余目录将以逗号分隔的方式配置在相同的 属性 上。我希望我的实现从 属性 中提取每个以逗号分隔的目录,并将文件上传到每个目录。
这可能吗?我遇到了发布-订阅渠道,但目前正在努力了解如何将它们包含在我的实施中。即使那样,pub-sub 通道似乎也需要在代码中进行预配置,其中一个通道 = 一个目录。那我走对了吗?
没有什么built-in可以做到这一点。
最简单的方法是在上游创建自定义拆分器并使用 header 中的目录发出 n 条消息,然后在远程目录表达式中使用 header 值。
尝试使用 publishSubscribeChannel
.publishSubscribeChannel(s -> s
.subscribe(f -> f
.handle(Sftp.outboundAdapter(sftpSessionFactory())
.remoteDirectory(getRemoteRootDir() + remoteDirectory1)
.temporaryFileSuffix(".tmp")))
.subscribe(f -> f
.handle(Sftp.outboundAdapter(sftpSessionFactory())
.remoteDirectory(getRemoteRootDir() + remoteDirectory2)
.fileNameExpression(fileRenameExpression)
.temporaryFileSuffix(".tmp")))