Mule3将附件上传到SFTP服务器

问题描述 投票:0回答:1

我想将附件原样上传到从HTTP入站获得的SFTP服务器。这些文件可以是任何类型,例如XML,JSON,txt等。

我尝试了这些示例代码,但是问题是上传文件的格式不是我发送的格式。它总是像1f144250-7b46-11ea-a605-38f9d3744a4d.dat一样存储在FTP服务器中。

    <flow name="FtpUp">
        <http:listener config-ref="HTTP_Listener_Configuration" path="/attach1" doc:name="Copy_of_HTTP"/>
        <logger message="#[message.inboundAttachments.size()]" level="INFO" doc:name="Copy_of_Logger"/>
        <foreach collection="#[message.inboundAttachments]" doc:name="Copy_of_For Each">
            <set-payload value="#[payload.dataSource.content]" doc:name="Set Payload"/>
            <byte-array-to-string-transformer doc:name="Byte Array to String"/>
            <set-attachment attachmentName="test.txt" value="#[payload]" contentType="text/plain" doc:name="Attachment"/>
            <sftp:outbound-endpoint exchange-pattern="request-response" host="" port="22" path="" user="" password="" responseTimeout="10000" doc:name="SFTP"/>
        </foreach>
    </flow>
    <flow name="Copy_of_FtpUp">
        <http:listener config-ref="HTTP_Listener_Configuration" path="/attach2" doc:name="Copy_of_Copy_of_HTTP"/>
        <foreach collection="#[message.inboundAttachments]" doc:name="Copy_of_Copy_of_For Each">
            <set-payload value="#[payload.dataSource.content]" doc:name="Set Payload"/>
            <sftp:outbound-endpoint exchange-pattern="request-response" host="" port="22" path="" user="" password="" responseTimeout="10000" doc:name="Copy_of_SFTP" disableTransportTransformer="true"/>
        </foreach>
    </flow>

enter image description here

有人可以帮我找出缺失的部分吗?我只想上传文件,因为它是进入HTTP入站的文件。我正在使用Mulesoft 3(3.9.4 EE)。在此先感谢。

ftp mule sftp mulesoft mule-esb
1个回答
0
投票

问题可能是SFTP出站终结点未设置outputPattern属性来定义输出文件的名称。默认值是消息ID,它说明您要获取的名称。

outputPattern

将文件写入磁盘时使用的模式。这可以使用为此配置的文件名解析器支持的模式连接器。默认情况下,使用文件传输参考。看到这个有关如何覆盖默认值的信息,请参见同一文档部分解析器。

类型:字符串

默认:消息ID,例如,ee241e68-c619-11de-986b-adeb3d6db038

此外,该流程还将文件作为附件发送。 SFTP连接器期望要传输的文件内容在有效负载中。

© www.soinside.com 2019 - 2024. All rights reserved.