使用 spring 集成 ftp 支持将文件从 ftp 服务器传输到另一个 ftp 服务器
Transfer file from ftp Server to another ftp server using spring integration ftp support
我是 Spring 的新手,我目前正在 spring 集成 ftp 支持。
- 我从本地目录传输到服务器 (filZilla)。
- 我从服务器下载了文件,没问题。
但我想知道如何将文件从 FTP 服务器传输到另一个 FTP 服务器,以及是否可以在不从服务器下载文件的情况下读取文件。
如果您的意思是获取文件并将其发送到另一台服务器而不将其写入本地文件系统,那么,不,目前标准组件无法做到这一点。
但是,您可以使用两个FtpRemoteFileTemplate
s(使用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)
}
}
}
});
我是 Spring 的新手,我目前正在 spring 集成 ftp 支持。
- 我从本地目录传输到服务器 (filZilla)。
- 我从服务器下载了文件,没问题。
但我想知道如何将文件从 FTP 服务器传输到另一个 FTP 服务器,以及是否可以在不从服务器下载文件的情况下读取文件。
如果您的意思是获取文件并将其发送到另一台服务器而不将其写入本地文件系统,那么,不,目前标准组件无法做到这一点。
但是,您可以使用两个FtpRemoteFileTemplate
s(使用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)
}
}
}
});