104.19. 파일에 쓰기
Camel은 물론 파일을 작성할 수 있습니다. 아래 샘플에서는 SEDA 대기열에서 해당 보고서를 디렉터리에 쓰기 전에 처리하는 몇 가지 보고서를 받습니다.
104.19.1. Exchange.FILE_NAME
을 사용하여 하위 디렉터리에 쓰기
단일 경로를 사용하여 여러 하위 디렉터리에 파일을 작성할 수 있습니다. 다음과 같이 경로 설정이 있는 경우:
<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
이를 통해 여러 대상에 파일을 쓸 수 있는 단일 경로를 사용할 수 있습니다.
104.19.2. 최종 대상과 관련된 임시 디렉터리를 통해 파일 작성
경우에 따라 대상 디렉터리와 관련된 일부 디렉터리에 파일을 임시로 작성해야 합니다. 이러한 상황은 일반적으로 필터링 기능이 제한된 일부 외부 프로세스에서 작성하는 디렉터리에서 읽는 경우 발생합니다. 아래 예제에서는 /var/myapp/filesInProgress
디렉터리에 기록되고 데이터 전송이 완료되면 /var/myapp/finalDirectory 'directory로 원자적으로 이동됩니다.
from("direct:start"). to("file:///var/myapp/finalDirectory?tempPrefix=/../filesInProgress/");