Использование входного порта в компоненте списка файлов
Я пытаюсь передать параметр в компонент списка файлов через входной порт 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.
Надеюсь, это поможет.