我正在尝试使用Apache来使用(流)一个大压缩文件。当文件被写入时,流应该立即开始。下面是文件使用者代码。
rest("/api/request/{Id}/")
.get()
.produces(MediaType.APPLICATION_OCTET_STREAM_VALUE)
.process(new FindFileName)
.pollEnrich().simple("file:" + outputDir + "?fileName=${property.filnavn}&noop=false&readLock=none&delete=true").timeout(pollTimeout)克劳斯·易卜生( Claus )建议使用readLock=none获取流。当我使用该选项时,流会立即关闭,并且只得到具有正确文件名的0字节文件。
如何配置camel的文件端点以使用readLock=none并在文件完成之前使用该文件?
独立的路由写入文件。
发布于 2020-08-26 05:11:09
没有安全的方法来知道什么时候文件是由第三方完成的。您在那里所做的,就是在投票中获得一个java.io.File,丰富到文件中。哪个骆驼可以转换成一个FileInputStream来读取。但是,如果第三方完成了文件的编写,那么这个流就无法知道什么时候。
读取当前正在编写的文件是一种非常糟糕的做法。
要知道文件什么时候写完,第三方可以使用一种策略
written
JDK不能跨文件系统工作,通常也不能很好地获得文件锁--它可能在同一个JVM中工作,但在其两个不同的系统中却不能工作。
https://stackoverflow.com/questions/63582056
复制相似问题