Я пытаюсь использовать компонент запроса мула для SFTP. Как указать имя файла как часть аргумента запроса? Это мой поток:
<flow name="Move_Doc_To_Temp_Location" doc:name="Move_Doc_To_Temp_Location">
<jdbc-ee:inbound-endpoint queryKey="Select_Document" queryTimeout="-1" pollingFrequency="30000" connector-ref="LoanApp_Database" doc:name="Select_Doc_To_be_moved"/>
<set-variable variableName="OriginalPayload" value="#[payload]" doc:name="OriginalPayload"/>
<logger message="#[payload['DocID']] - #[payload['Location']]" level="INFO" category="Document to be moved" doc:name="Logger"/>
<!-- <mulerequester:request config-ref="Mule_Requester" resource="file:///#[payload['Location']]" doc:name="Mule Requester"/> -->
<mulerequester:request config-ref="Mule_Requester" resource="sftp://user:Pwd@Hostname#[payload['Location']]" doc:name="Mule Requester"/>
<file:outbound-endpoint path="C:\Users\jvas\Desktop\testfiles" outputPattern="#[header:originalFilename]" responseTimeout="10000" doc:name="File"/>
</flow>
Значение местоположения преобразуется в /opt/Documents/test.txt. Когда я указываю имя файла вот так, возникает ошибка:
Теперь я попытался удалить имя файла из местоположения, и SFTP прошел успешно, но файл был выбран случайным образом. Файл имеет все разрешения для SFTP, и я могу успешно выполнить SFTP через командную строку. Я сослался на документацию для URL-адреса SFTP, и это то, что она обеспечивает для разрешения имени файла из URL-адреса: http://tools.ietf.org/html/draft-ietf-secsh-scp-sftp-ssh-uri-04#section-4.1 < / а>
Получите file.txt из домашнего каталога пользователя на хосте host.example.com, используя SFTP, используя имя пользователя user. В этом примере предполагается, что реализация поддерживает указание пути относительно домашнего каталога с помощью ведущей тильды.
Получите file.txt из абсолютного пути / dir / path на хосте host.example.com, используя SFTP, используя имя пользователя user.
sftp://[email protected]/~/file.txt
Коннектор Mule SFTP не может принимать имя файла в адресе. Вместо этого вам нужно использовать фильтр имени файла. Однако, к сожалению, я думаю, что модуль запроса игнорирует фильтры, настроенные на конечной точке, как указано здесь: http://forum.mulesoft.org/mulesoft/topics/mule_module_requester_add_support_for_filenamefilter
sftp://[email protected]/dir/path/file.txt