2013-11-27 2 views
0

Talend DI (Talend Studio 5.2.0 포함)를 사용하여 폴더 구조를 만드는 방법을 찾고 있습니다.Talend DI를 사용하여 전체 디렉토리 구조 만들기

/tmp/myjob/type1/file01.txt 
/tmp/myjob/type1/file02.txt 
/tmp/myjob/type1/file03.txt 
/tmp/myjob/type1/fileN.txt 
/tmp/myjob/type2/file01.csv 
/tmp/myjob/type2/file02.csv 
/tmp/myjob/type2/file03.csv 
/tmp/myjob/type2/fileN.csv 
/tmp/myjob/type3/file01.jpg 
/tmp/myjob/type3/file02.jpg 
/tmp/myjob/type3/file03.jpg 
/tmp/myjob/type3/fileN.jpg 

내가 원격 FTP (FTPS) 폴더에 전체 디렉토리 구조를 전송하려면 :

은이 같은 임시 폴더에 들어있는 뭔가가있다. (원격)

/destination/type1/file01.txt 
/destination/type1/file02.txt 
/destination/type1/file03.txt 
/destination/type1/fileN.txt 
/destination/type2/file01.csv 
/destination/type2/file02.csv 
/destination/type2/file03.csv 
/destination/type2/fileN.csv 
/destination/type3/file01.jpg 
/destination/type3/file02.jpg 
/destination/type3/file03.jpg 
/destination/type3/fileN.jpg 

아이디어가 destination에서 전체 디렉터리 구조를 다시 루트 소스 폴더와 /tmp/myjob과 talend 성분을하기 위해 tFTPPut을 구성하는 것입니다 :

그리고 결과는 것 폴더. 나는이 작업을 실행하면

FileMask    newName 
"./type1/*.txt"    "" 
"./type1/*.csv"    "" 
"./type1/*.jpg"    "" 

, 그것은 다음과 같은 오류를 확인하십시오 :

은 내가 filemask 속성에 다음 줄을 넣어 시도가 만들 수있는 경우

[statistics] connected 
Exception in component tFTPPut_1 
2: No such file 

누구나 알고 그런 과업?

답변

2

불행히도 tFtpPut은 원격 폴더를 만들지 않습니다. 유일한 해결 방법은 적절한 CMD/Bash 명령을 ssh 및 trig를 통해 연결하는 것입니다.

파일 마스크 문제에 대해서는 제게 Perl5 regex 구문을 사용하여 마스크 패턴을 표현하는 것이 좋습니다. 그것은 더 강력하고 표준 적이며 잘 문서화되어 있습니다. 그러나 소스 구조가 복잡하다면 더 나은 시간 절약 솔루션은 소스 컴퓨터에서 모든 것을 압축 한 다음 패키지를 ftp하고 마지막으로 원격 시스템에서 다시 압축을 풀 수 있습니다 (다시 ssh 연결을 통해).

나는 그것이 일반적인 해결책이 아니라는 것을 안다 : 사실상, 원격 기계에서 항상 ssh 할 수있는 것은 아니다. 그러나 나의 알려진 것에 따르면, 그것은 가능한 유일한 해결책이다.

+0

조언을 주셔서 감사합니다. 마지막으로 ssh 명령을 사용하여 폴더 구조를 만들고 다른 하나는 업로드 된 파일을 올바른 디렉토리로 이동합니다. 펄 정규식 구문 들어, 나는 그것을 사용했지만 펄 정규식과 tFtpPut 구성 요소에서 다른 전환 할 수있는 방법을 찾을 수 없습니다. –

+0

'파일'테이블 바로 위에 '파일 마스크로 Perl5 정규 표현식 사용'이라는 체크 박스가 표시되어야합니다. 그것은 마술을합니다. –

+0

tFTPPut 구성 요소에는 해당 상자가 없습니다. 하지만 Talend Studio 5.2.0 버전을 사용하고 있습니다. 아마도 새로운 기능입니다. –