【问题标题】:Writing to a remote file using Spring Integrations Sftp Streaming java configuration使用 Spring Integrations Sftp Streaming java 配置写入远程文件
【发布时间】:2016-09-22 04:48:21
【问题描述】:

如何使用 Spring 集成 Sftp Streaming 写入远程文件。我使用 xml 获得了一些代码,但我必须严格使用 java 配置,但我找不到任何。在某些验证失败后,我必须继续将一些数据附加到文件中。所以它不是一次性写入/传输,但我必须保持与远程的连接并继续使用错误日志附加文件。感谢任何帮助。

【问题讨论】:

    标签: java spring spring-integration spring-integration-sftp


    【解决方案1】:

    使用SftpRemoteFileTemplate execute()SessionCallback ...

    SftpRemoteFileTemplate template = new SftpRemoteFileTemplate(sessionFactory);
    PipedInputStream pipe = new PipedInputStream();
    OutputStream outputStream = new PipedOutputStream(pipe);
    template.execute(s -> {
        s.write(pipe, "/foo/bar.log");
        return null;
    });
    

    写入输出流(从另一个线程)将通过管道传输到输入流。当流关闭时,传输将结束。

    【讨论】:

    • 我的意思是,还有谁能更好地回答这个问题?
    • 对不起,跑题了。这是一个反问,因为你是 Spring Integration 项目的负责人,所以你可能知道你在说什么,但答案仍然没有被接受。
    • 感谢您的回复。我想在某些服务调用失败时写一些日志。所以在这个答案中,我只能看到日志文件所在的文件夹,但怎么做我将日志数据从代码传递到特定文件?
    • 这写入文件 /foo/bar?它不是一个目录,它是一个文件。你说你想追加到同一个文件。如果你想追加到不同的文件,你应该使用 append 方法。我将文件名更改为foo/bar.log 以使其更清晰。
    • 非常感谢!它对我有用。我所做的唯一更改是,使用追加而不是写入来追加到同一个文件,因为写入不起作用,即它没有追加到同一个文件.再次感谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 2022-11-05
    • 2012-01-06
    相关资源
    最近更新 更多