Apache Camel: Копировать файл в другую папку в том же SFTP - PullRequest
0 голосов
/ 20 марта 2020

Хотите скопировать файл в другую папку на одном FTP-сервере. (Не перемещать, а только копировать)

Ниже приведен код:

 private static String fromSftpComponent() {
    return "sftp://transit.evy.com/Hrm/test/From_HRM"
            + "?username=Hrm"
            + "&password=PqIy" // Stored on wildfly server
            + "&download=true" 
            + "&reconnectDelay=10000"
            + "&delay=100000"
            + "&fileName=Integrator_3.xml";


 private static String toSftpComponent {
    return "sftp://transit.evy.com/Hrm/dev/From_HRM"
            + "?username=HRM"
            + "&password=PqIy" // Stored on wildfly server
            + "&fileName=$simple{file:onlyname.noext}.xml";
}


ROUTE

public void configure() throws Exception {

                from(fromSftpComponent())
                    .log("CHU" + header("CamelFileName"))
                    .to(toSftpComponent())
                    .end().log("Written to output file");

Когда я пытаюсь запустить код, он подключается к SFTP 1, а затем печатает журнал CHU, а затем не копирует его в пункт назначения и продолжайте отключать и повторно подключать пункт назначения.

1 Ответ

1 голос
/ 20 марта 2020

Вам не хватает опции noop=true. Ознакомьтесь с документацией здесь


n oop (потребитель) Если установлено значение true, файл не перемещается и не удаляется каким-либо образом. Эта опция хороша для данных только для чтения или для требований типа ETL. Если noop = true, Camel также установит idempotent = true, чтобы избежать многократного использования одних и тех же файлов


Примерно так будет работать

from("file:source?noop=true")
        .to("file:destination");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...