Для очереди файлов Apache Camel требуются разрешения на запись в каталог для потребителя NOOP? - PullRequest
2 голосов
/ 15 июня 2011

У меня есть простой потребитель NOOP, настроенный на верблюде следующим образом:

file:///tst?delay=10000&idempotent=false&include=fileMatch&noop=true

Обычно пользователь, запускающий приложение верблюда, не имеет прав на запись в / tst, однако имеет права на чтение и запись в / tst / fileMatch. К сожалению, я обнаружил, что верблюд не будет даже запрашивать файл, если у него нет разрешения на запись в /tst.

Есть ли способ обойти это?

Ответы [ 2 ]

3 голосов
/ 19 января 2013

Со времени последнего ответа компонент верблюжьего файла претерпел соответствующие изменения:

Уведомление, начиная с верблюда 2.10, изменились блокировки чтения, fileLock и переименование также используйте также файл markerFile , чтобы не получать файлы, которые могут обрабатываться другим потребителем Camel, работающим на другом узле (например, кластере).Это поддерживается только файловым компонентом (не компонентом ftp).

Следовательно, в Camel 2.10 или выше вам все еще нужно разрешение на запись для использования readLock = fileLock.Вы можете использовать readLock=none, с очевидным влиянием, что не будет блокировки чтения.

2 голосов
/ 15 июня 2011

Я не должен задавать вопросы, когда я так устал.Причина, по которой это не работает (, как четко указано в описании компонента ), заключается в том, что стратегией по умолчанию readLock является markerFile (которой необходимо записать файл маркера в каталог).При изменении этого значения на readLock=fileLock мне больше не нужны разрешения на запись в каталог для чтения файла, поскольку блокировка файловой системы установлена ​​для файла, который читается.

Рабочий URI:

file:///tst?delay=10000&idempotent=false&include=fileMatch&noop=true&readLock=fileLock
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...