[英]Apache Camel File Queue Requires Directory Write Permissions For NOOP Consumer?
我在骆驼中配置了一个简单的 NOOP 文件使用者,如下所示:
file:///tst?delay=10000&idempotent=false&include=fileMatch&noop=true
通常,运行骆驼应用程序的用户将没有对 /tst 的写权限,但对 /tst/fileMatch 有读写权限。 不幸的是,我发现骆驼甚至不会轮询该文件,除非它对 /tst 具有写权限。
有没有解决的办法?
自上次回答以来,骆驼文件组件发生了相关变化:
请注意,从 Camel 2.10 开始,读锁发生了变化, fileLock和 rename 也将使用 markerFile ,以确保不会拾取运行在另一个节点(例如集群)上的另一个 Camel 消费者可能正在处理的文件。 这仅受文件组件支持(不支持 ftp 组件)。
因此,在 Camel 2.10 或更高版本中,您仍然需要写入权限才能使用 readLock=fileLock。 您可以使用readLock=none
,明显的影响是不会有读锁。
当我这么累的时候,我不应该问问题。 这不起作用的原因(在组件描述中明确说明)是默认的readLock
策略是markerFile
(需要在目录中写入标记文件)。 通过将其更改为readLock=fileLock
,我不再需要目录的写权限来读取文件,因为文件系统锁被放置在正在读取的文件上。
工作 URI 是:
file:///tst?delay=10000&idempotent=false&include=fileMatch&noop=true&readLock=fileLock
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.