Компонент мула 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, получает в качестве входных данных израсходованный пустой поток, поэтому он ничего не выводит. Решение состоит в том, чтобы преобразовать входные данные во что-то в памяти, например, используя объект для преобразования байтового массива в середине. Имейте в виду, что для больших файлов вам может не хватить памяти.

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