0

在 Spring-XD 中,文件 检测输入目录中的新文件并通过管道流式传输它们的内容。

是否有类似的接收在输出目录中创建单独的结果文件(例如使用原始文件名),而不是所有结果都附加到的单个文件,http://docs.spring.io/spring-xd/docs/ current/reference/html/#file-sink:“文件接收器使用流名称作为它创建的文件的默认名称,并将文件放在 /tmp/xd/output/ 目录中。”?

4

2 回答 2

2

向下滚动到您引用的该文档中的选项。

使用--nameExpression=....

如果您正在使用mode=contents; 原始文件名在file_name标题中可用:

--nameExpression=headers[file_name]

mode=lines当前不捕获文件名(它将在下一个版本中修复)。

如果您使用mode=ref,则需要设置标题。

于 2015-07-06T13:23:27.403 回答
0

最小的工作示例

在春天-XD

stream create --name test --definition "file --mode=contents | b:file --binary=true --dirExpression='''/tmp/out''' --nameExpression=headers[file_name]" --deploy

echo "1111"  >  /tmp/xd/input/test/file1.txt
echo "2222"  >  /tmp/xd/input/test/file2.txt

结果是

ll  /tmp/out/
>  
>  -rw-rw-r--  1 rmv  rmv      5 Jul  7 10:19 file1.txt
>  -rw-rw-r--  1 rmv  rmv      5 Jul  7 10:19 file2.txt
于 2015-07-09T07:55:27.567 回答