Использование входного порта в компоненте списка файлов

Я пытаюсь передать параметр в компонент списка файлов через входной порт 0. До сих пор все мои попытки были встречены с ошибкой,

Input edge has no effect. Disconnect edge or use metadata fields as parameters in Target URL, Source path or Target path.

В идеале, я хотел бы, чтобы целевой URL был чем-то вроде http://${S3_ACCESS_KEY}:${S3_SECRET_KEY}@${MY_BUCKET}.s3.amazonaws.com/reports/${port:0.value}/*_interestingReport.csv где ${port:0.value} это значение, переданное из входного порта.

Как правильно использовать данные, поступающие на входной порт 0?

2 ответа

Решение

Способ передачи параметров от входного края для списка файлов (но также и для других файловых компонентов) заключается в том, что вы используете имя столбца метаданных из входного края и заключаете его между ${и}.

Таким образом, если метаданные на краю имеют поле с именем directory, которое содержит каталог, который вы хотите использовать, это способ сделать это.


http://${S3_ACCESS_KEY}:${S3_SECRET_KEY}@${MY_BUCKET}.s3.amazonaws.com/reports/${directory}/*_interestingReport.csv

Позвольте мне показать вам пример очень простого графика, который использует "Генератор данных", который создает поток и отправляет его в качестве входных данных компонента "Список файлов".

http://www.filedropper.com/inputportfilelist_1

Как вы можете видеть, ссылка на поле ввода имеет вид "${DATA_SOURCE_DIR}/${fileDir}/", поскольку "fileDir" является единственным полем, содержащимся в метаданных ссылки, соединяющей оба компонента. Он в основном перечислит файлы, расположенные в ${PROJECT}\data\source\manifest.

Надеюсь, это поможет.

Другие вопросы по тегам