Talend - Получить все файлы (в нескольких каталогах) с FTP

Существует множество компонентов FTP для извлечения файлов. Что мне следует использовать, если у меня есть корневой каталог с несколькими подкаталогами и несколькими файлами во всех из них, и я хочу извлечь все файлы?

Например:

rootDirectory
      - file1.txt
      - file2.txt
      - file3.txt
      - subDirectory1
            - file4.txt
            - file5.txt
      - subDirectory2
            - file6.txt
            - subDirectory2
                  - file7.txt
                  - file8.txt

Как я могу получить файлы с 1 по 8, просто указав компоненту путь к корневому каталогу?


person user2144555    schedule 24.01.2014    source источник
comment
Какой FTP-клиент вы используете? Фиксирована ли структура в соответствии с вашим описанием или это просто пример? Можете ли вы использовать Perl на своем клиенте?   -  person Mark Setchell    schedule 24.01.2014
comment
Я использую компоненты FTP от Talend (или FTPGet, или FileFetch)... Я хочу знать, что подходит для этого случая. Структура каталогов может быть разной, но я знаю, какие папки могут существовать. Да, я могу использовать Perl.   -  person user2144555    schedule 24.01.2014
comment
Я думаю, я говорю, чтобы убедиться, что принимающие подкаталоги существуют на вашем локальном компьютере, прежде чем пытаться ПОЛУЧИТЬ в них.   -  person Mark Setchell    schedule 25.01.2014
comment
Вы нашли решение?   -  person Mark Setchell    schedule 29.01.2014
comment
Компонент tFTPGet делает то, что я хочу, но у меня были проблемы с моим FTP-соединением, и поэтому я получал некоторые ошибки при использовании этого компонента.   -  person user2144555    schedule 29.01.2014


Ответы (1)


Я еще не использовал компоненты FTP, но обычно вы используете tFileList, подключенный к tFileCopy, для перемещения файлов. Так что в вашем случае я ожидаю, что вы должны использовать tFTPFileList, подключенный к вашему FTP-серверу с файловой маской "*.txt", а затем подключить его к tFTPGET. Установите этот компонент в локальный каталог по вашему выбору, удаленный каталог "/", а затем используйте ((String)globalMap.get("tFTPFileList_1_CURRENT_FILEPATH")) в вашей маске файла.

Кажется, этот подход я только что нашел в документации Talend. хотя для этого может потребоваться вход в систему (бесплатная регистрация учетной записи и, вероятно, стоит это сделать, если вы вообще много используете Talend).

Вероятно, справедливо будет сказать, что если вы не планируете делать что-то сложное с данными, а не просто захватывать их, большинство FTP-инструментов должны с комфортом получать все с FTP-сервера, и Talend может быть не лучшим подходом здесь.

person ydaetskcoR    schedule 24.01.2014
comment
Этот подход терпит неудачу, когда я пытаюсь перейти в подкаталог... Это дает мне ошибку, потому что это не файл... - person user2144555; 24.01.2014
comment
@user2144555 user2144555 У вас есть общедоступный FTP-сервер с подкаталогами и текстовыми файлами на нем? - person ydaetskcoR; 24.01.2014
comment
Просто дружеский совет... если вы делаете GET /somedir/somefile, вам лучше убедиться, что /somedir также существует на вашей локальной машине!!!! Вы можете избежать этой необходимости, добавив другое место на локальном компьютере, например GET /somedir/somefile newnane (без каталога). - person Mark Setchell; 25.01.2014