Компонент мула SFTP Компонент
Я разрабатываю поток мула, в котором процесс мула должен загружать файл / файлы (из исходного каталога) на сервер SFTP.
Папка IN (эта папка содержит файл для передачи в SFTP)
У меня ниже мула
<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns:file="http://www.mulesoft.org/schema/mule/file" xmlns:sftp="http://www.mulesoft.org/schema/mule/sftp" xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
xmlns:spring="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd
http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/sftp http://www.mulesoft.org/schema/mule/sftp/current/mule-sftp.xsd
http://www.mulesoft.org/schema/mule/file http://www.mulesoft.org/schema/mule/file/current/mule-file.xsd">
<flow name="sftpFlow1">
<poll doc:name="Poll">
<fixed-frequency-scheduler frequency="30" startDelay="10" timeUnit="SECONDS"/>
<logger message="Hi" level="INFO" doc:name="Logger"/>
</poll>
<flow-ref name="sftpSub_Flow" doc:name="Flow Reference"/>
</flow>
<sub-flow name="sftpSub_Flow">
<file:outbound-endpoint path="D:\IN" responseTimeout="10000" doc:name="File"/>
<sftp:outbound-endpoint exchange-pattern="one-way" host="host" port="port" path="sftppath" user="user" password="password" responseTimeout="10000" doc:name="SFTP"/>
</sub-flow>
</mule>
Проблемы: я не вижу никаких ошибок или исключений, но ожидаемые файлы из папки IN не получают сервер передачи SFTP. Я вижу файл ****. Dat каждый раз, когда выполняется подпоток.
Любое предложение?
2 ответа
Здесь вы использовали обе исходящие конечные точки. Вам нужен компонент конечной точки входящего файла, чтобы выбрать файл из исходного местоположения. см. образец ниже для получения дополнительной информации https://dzone.com/articles/anypoint-file-connector-with-mulesoft
вы можете использовать свойство outputPattern в конечной точке sftpoutbound, чтобы изменить имя файла с любым расширением
Поскольку приложение на самом деле не показывает никаких входных данных, я предполагаю, что образец содержит ошибки, но у реального приложения есть некоторая входящая конечная точка (например, входящая конечная точка файла), которая читает в потоковом режиме. Подпоток пытается дважды использовать входной поток для вывода на две исходящие конечные точки. Поскольку первый из них использует поток, второй, SFTP, получает в качестве входных данных израсходованный пустой поток, поэтому он ничего не выводит. Решение состоит в том, чтобы преобразовать входные данные во что-то в памяти, например, используя объект для преобразования байтового массива в середине. Имейте в виду, что для больших файлов вам может не хватить памяти.