Spring-XD 中的非串联文件接收器?
Non-concatenating file sink in Spring-XD?
在 Spring-XD 中,file source 检测输入目录中的新文件并通过管道传输其内容.
是否有类似的 sink 在输出目录中创建单独的结果文件(例如使用原始文件名)而不是将所有结果附加到一个文件,http://docs.spring.io/spring-xd/docs/current/reference/html/#file-sink: "The file sink uses the stream name as the default name for the file it creates, and places the file in the /tmp/xd/output/ directory."?
向下滚动到您引用的文档中的选项。
使用--nameExpression=...
.
如果您正在使用mode=contents
;原始文件名可在 file_name
header:
--nameExpression=headers[file_name]
mode=lines
目前不捕获文件名(将在下一个版本中修复)。
如果您使用的是mode=ref
,您需要设置一个header。
最小工作示例
在Spring-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
在 Spring-XD 中,file source 检测输入目录中的新文件并通过管道传输其内容.
是否有类似的 sink 在输出目录中创建单独的结果文件(例如使用原始文件名)而不是将所有结果附加到一个文件,http://docs.spring.io/spring-xd/docs/current/reference/html/#file-sink: "The file sink uses the stream name as the default name for the file it creates, and places the file in the /tmp/xd/output/ directory."?
向下滚动到您引用的文档中的选项。
使用--nameExpression=...
.
如果您正在使用mode=contents
;原始文件名可在 file_name
header:
--nameExpression=headers[file_name]
mode=lines
目前不捕获文件名(将在下一个版本中修复)。
如果您使用的是mode=ref
,您需要设置一个header。
最小工作示例
在Spring-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