Jsch 是否允许我在不使用 get 的情况下直接使用远程主机中的文件?

问题描述 投票:0回答:0

我在 StackOverflow 上检查了几个 Jsch 问题,即:https://stackoverflow.com/a/46559746/16034206 虽然它让我 ssh 进入远程主机,1) 我不想将文件复制到我的本地主机 2 ) 我也不想以流的形式读取文件。

  1. 这是因为服务器上的进程会不停地运行一天,不断地向这个文件写入数据。我不确定如果我尝试将文件复制到我的本地目录中会发生什么副作用。

  2. 我用来编写该特定文件的库不支持作为流读取。

我希望能够打开到远程主机的连接,然后直接将文件的远程路径传递给我的阅读器并让它对其进行处理。这可能吗?

public static void main(String[] args) throws JSchException {
        JSch jsch = new JSch();
        Session session = jsch.getSession( "username", "hostname" );
        session.setConfig("StrictHostKeyChecking", "no");
        session.setPassword("password");
        session.connect();

        Channel channel = session.openChannel("sftp");
        channel.connect();
        ChannelSftp sftpChannel = (ChannelSftp) channel;

        new Replayer(prop).run();

        sftpChannel.exit();
        session.disconnect();
    }

public Replayer(Properties properties) {
        String PATH = properties.getProperty("CHRONICLE_PATH");
        CYCLE_MODE = properties.getProperty("CYCLE_MODE");
        CYCLE_STR = properties.getProperty("CYCLE");
        REPLAY = properties.getProperty("REPLAY");
        NETWORK_INTERFACE = properties.getProperty("NETWORK_INTERFACE");

        QUEUE = SingleChronicleQueueBuilder.single(PATH).rollCycle(RollCycles.FAST_DAILY).build();
        TAILER = QUEUE.createTailer();
    }
java jsch
© www.soinside.com 2019 - 2024. All rights reserved.