Пропустить копирование файла, если цель совпадает - PullRequest
0 голосов
/ 28 января 2020

Я пытаюсь создать приложение auto syn c. Файлы должны быть просто скопированы, если, например, содержание изменилось. Поскольку я новичок в верблюде, и я не нашел ничего, что я хотел бы узнать, можно ли как-то сравнить целевой файл с исходным файлом (если он есть).

public class App {

    public static void main(String[] args) {
        final long durationMs = 2000;
        final CamelContext camelContext = new DefaultCamelContext();
        try {
            camelContext.addRoutes(new RouteBuilder() {
                @Override
                public void configure() throws Exception {
                    from("file:/home/av/Schreibtisch/src?noop=true&recursive=true&maxDepth=100")
                            .to("file:/home/av/Schreibtisch/target");
                }
            });
            camelContext.start();
            Thread.sleep(durationMs);
            camelContext.stop();

        } catch (Exception camelException) {
            camelException.printStackTrace();
        }
    }

}

1 Ответ

2 голосов
/ 28 января 2020

В документации Apache есть целый раздел , чтобы узнать, как избежать использования определенного файла при определенных условиях. idempotent и idempotentKey являются решением здесь.

Возможно, ваши дискриминационные условия для определения того, используется ли файл уже, будут:

  1. Размер файла (${file:name}-${file:size})
  2. Отметка времени файла (${file:name}-${file:modified})
  3. Реализация более сложных условий.

Например, использовать размер файла. Это было бы что-то вроде:

from("file:/somedir?noop=true&idempotentKey=${file:name}-${file:size}")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...