Apache Camel SFTP组件在读取文件后,默认情况下不会删除文件。如果你想在读取后删除文件,可以使用以下代码示例来解决此问题:
import org.apache.camel.builder.RouteBuilder;
public class SftpConsumerExample extends RouteBuilder {
@Override
public void configure() throws Exception {
// 定义SFTP消费者路由
from("sftp://user@hostname/path/to/directory?delete=true")
.to("file:/path/to/output/directory");
}
}
在上面的代码示例中,我们使用delete=true
参数来告诉SFTP消费者在读取文件后删除文件。注意,你需要将user@hostname/path/to/directory
替换为你的SFTP服务器地址和路径,并将/path/to/output/directory
替换为你想要将文件输出到的本地目录。
然后,你可以将上述代码添加到你的Camel应用程序中,并根据需要进行其他配置和定制。启动应用程序后,它将从SFTP服务器上的指定目录中读取文件,并将其复制到本地目录中。在成功复制文件后,SFTP消费者将删除原始文件。
希望这个示例对你有帮助!