使用 spring 集成 ftp 支持将文件从 ftp 服务器传输到另一个 ftp 服务器

Transfer file from ftp Server to another ftp server using spring integration ftp support

我是 Spring 的新手,我目前正在 spring 集成 ftp 支持。

但我想知道如何将文件从 FTP 服务器传输到另一个 FTP 服务器,以及是否可以在不从服务器下载文件的情况下读取文件。

如果您的意思是获取文件并将其发送到另一台服务器而不将其写入本地文件系统,那么,不,目前标准组件无法做到这一点。

但是,您可以使用两个FtpRemoteFileTemplates(使用execute方法)将数据从InputStream流式传输到OutputStream.

FtpRemoteFileTemplate server1;
FtpRemoteFileTemplate server2
server1.get("filetotransfer", new InputStreamCallback() {
    @Override
    public void doWithInputStream(final InputStream stream) throws IOException {
        server2.executeWithClient(new ClientCallback<FTPClient, Void>() {
            @Override
            public Void doWithClient(final FTPClient client) {
               try (final OutputStream outStream = client.storeFileStream("filedestination");) {
                   IOUtils.copyLarge(stream, outputStream)
               }
        }
    }
});