103.3. 이동 및 삭제 작업
모든 이동 또는 삭제 작업은 라우팅이 완료된 후(post 명령) 실행됩니다. 이렇게 하면 Exchange 파일을 처리하는 동안 파일이 여전히 inbox 폴더에 있습니다.
다음 예제를 사용하여 이를 보여줍니다.
from("file://inbox?move=.done").to("bean:handleOrder");
from("file://inbox?move=.done").to("bean:handleOrder");
inbox 폴더에 파일이 삭제되면 파일 소비자는 이 사실을 알리고 handleOrder 빈으로 라우팅되는 새 FileExchange 가 생성됩니다. 그런 다음 빈은 파일 오브젝트를 처리합니다. 이 시점에서 파일은 여전히 inbox 폴더에 있습니다. 빈이 완료되고 경로가 완료되면 파일 소비자는 이동 작업을 수행하고 파일을 .done 하위 폴더로 이동합니다.
이동 및 사전 이동 옵션은 디렉토리 이름으로 간주됩니다 ( 파일 언어 와 같은 표현식을 사용하는 경우 또는 Simple 의 경우 표현식 평가 결과는 사용할 파일 이름입니다.
move=../backup/copy-of-${file:name}
move=../backup/copy-of-${file:name}
그런 다음 사용할 파일 언어 를 사용하는 파일 언어를 사용하며 이는 상대 또는 절대일 수 있습니다. 상대적인 경우 디렉터리는 파일이 사용된 폴더 내에서 하위 폴더로 생성됩니다.
기본적으로 Camel은 사용된 파일을 파일이 사용된 디렉터리를 기준으로 .camel 하위 폴더로 이동합니다.
처리 후 파일을 삭제하려면 경로는 다음과 같아야 합니다.
from("file://inobox?delete=true").to("bean:handleOrder");
from("file://inobox?delete=true").to("bean:handleOrder");
파일을 처리하기 전에 이동하기 위한 사전 이동 작업을 도입했습니다. 이렇게 하면 처리되기 전에 이 하위 폴더로 이동할 때 스캔한 파일을 표시할 수 있습니다.
from("file://inbox?preMove=inprogress").to("bean:handleOrder");
from("file://inbox?preMove=inprogress").to("bean:handleOrder");
사전 이동 및 일반 이동을 결합할 수 있습니다.
from("file://inbox?preMove=inprogress&move=.done").to("bean:handleOrder");
from("file://inbox?preMove=inprogress&move=.done").to("bean:handleOrder");
따라서 이 경우 파일은 처리 중인 경우 진행 중인 폴더에 있으며 처리된 후 .done 폴더로 이동합니다.