2014-10-09 4 views
1

SFTP 서버에 파일을 자동으로 업로드하는 프로젝트를 진행 중입니다. 내 프로젝트는 현재 초기 요구 사항 사양에 따라 생산 및 작동 중입니다. 내 프로젝트는 사전 정의 된 위치에서 txt 파일을 가져옵니다. 이제 SFTP 서버의 크기 제한으로 인해 업로드 전에 txt 파일을 압축해야합니다.Apache Camel 파일 형식

이제 txt 파일뿐만 아니라 xls, csv 및 Zip 파일도 수용하도록 내 낙타 경로를 변경하고 싶습니다.

어떻게하면됩니까?

현재 내 경로는 다음과 같습니다

from("quartz://myscheduler?cron={{cron}}") 
.pollEnrich("file:{{pickuplocation}}?moveFailed=error/${file:name.noext}_${date:now:yyyyMMddHHmmssSSS}.${file:ext}&move=SFTPCompleted/${date:now:MMM}-${date:now:yyyy}/${file:name.noext}_${date:now:yyyyMMddHHmmssSSS}.${file:ext}") 
     .setHeader("CamelFileName", simple("${file:name}")) 
     .setHeader("RouteID",constant("Route ID"))   
     .multicast() 
      .to("sftp://"+username+"@"+SftpLocation+"password="+password+"&stepwise=false&disconnect=true&fileName=${file:name.noext}.txt") 
     .end() 

TIA

답변

2

당신이 파일을 복사하는 등의 복잡한 방법을 사용하는 이유는 표시되지 않습니다. 내가 잘못 본게 아니라면 당신은이를 사용할 수 있습니다

from("file:{{pickuplocation}}?moveFailed=error/${file:name.noext}_${date:now:yyyyMMddHHmmssSSS}.${file:ext}&move=SFTPCompleted/${date:now:MMM}-${date:now:yyyy}/${file:name.noext}_${date:now:yyyyMMddHHmmssSSS}.${file:ext}) 
.to("sftp://"+username+"@"+SftpLocation+"password="+password+"&stepwise=false&disconnect=true") 

이 의지 픽업 pickupLocation 디렉토리와 FTP의 compenent의 모든 파일은 원격 서버에 같은 이름의 파일을 작성합니다.

당신은 특정 파일 형식을 일치하는 정규식을 설정 파일 구성 요소의 '포함'매개 변수를 사용할 수 있습니다

+0

http://camel.apache.org/file2.html이 도와 주셔서 너무 거트 감사드립니다. 그것은 나의 기대에 따라 지금 행동하고있다. 너는 별이야. –

+0

당신을 진심으로 환영합니다. 낙타를 즐기십시오! –