103.19. 파일에 쓰기
Camel은 물론 파일을 작성할 수 있습니다. 즉, 파일을 생성합니다. 아래 샘플에서는 디렉터리에 쓰기 전에 처리하는 SEDA 대기열에 대한 일부 보고서를 받습니다.
103.19.1. Exchange.FILE_NAME을 사용하여 하위 디렉터리에 쓰기 링크 복사링크가 클립보드에 복사되었습니다!
단일 경로를 사용하면 여러 하위 디렉터리에 파일을 쓸 수 있습니다. 다음과 같이 경로 설정이 있는 경우:
<route> <from uri="bean:myBean"/> <to uri="file:/rootDirectory"/> </route>
<route>
<from uri="bean:myBean"/>
<to uri="file:/rootDirectory"/>
</route>
myBean
에서 exchange.FILE_NAME
헤더를 다음과 같은 값으로 설정할 수 있습니다.
Exchange.FILE_NAME = hello.txt => /rootDirectory/hello.txt Exchange.FILE_NAME = foo/bye.txt => /rootDirectory/foo/bye.txt
Exchange.FILE_NAME = hello.txt => /rootDirectory/hello.txt
Exchange.FILE_NAME = foo/bye.txt => /rootDirectory/foo/bye.txt
이를 통해 여러 대상에 파일을 쓸 수 있는 단일 경로를 사용할 수 있습니다.
103.19.2. 최종 목적지와 관련된 임시 디렉토리를 통해 파일 작성 링크 복사링크가 클립보드에 복사되었습니다!
경우에 따라 대상 디렉터리를 기준으로 일부 디렉터리에 파일을 임시로 써야 합니다. 이러한 상황은 일반적으로 제한된 필터링 기능을 사용하는 일부 외부 프로세스가 쓰기 중인 디렉터리에서 읽는 경우 발생합니다. 아래 예제에서는 /var/myapp/filesInProgress
디렉터리에 작성되고 데이터 전송이 완료된 후 ' /var/myapp/finalDirectory 'directory로 완전히 이동합니다.
from("direct:start"). to("file:///var/myapp/finalDirectory?tempPrefix=/../filesInProgress/");
from("direct:start").
to("file:///var/myapp/finalDirectory?tempPrefix=/../filesInProgress/");