0

我有一个关于使用 WSO2 ESB 和 VFS 传输流式传输大文件的问题。我已经设置了一个从 FTP 位置读取文件的代理。此文件应通过 WSO2 流式传输并写入目标位置。为了激活流式传输,我在发送方将 transport.vfs.Streaming 参数设置为“true”,并在接收方声明了相应的属性。

<proxy xmlns="http://ws.apache.org/ns/synapse" name="LargeFileTestProxy" transports="vfs" startOnLoad="true" trace="disable">
<target>
    <inSequence>
        <property xmlns:ns2="http://org.apache.synapse/xsd" name="transport.vfs.ReplyFileName" expression="fn:concat(fn:substring-after(get-property('MessageID'), 'urn:uuid:'), '.xml')" scope="transport" type="STRING"/>
        <property name="transport.vfs.Streaming" value="true" scope="transport" type="STRING"/>
        <property name="transport.vfs.Append" value="true" scope="transport" type="STRING"/>
        <property name="OUT_ONLY" value="true" scope="default" type="STRING"/>
        <send>
            <endpoint>
                <address uri="vfs:file:///poc/services/inbound"/>
            </endpoint>
        </send>
    </inSequence>
    <outSequence/>
    <faultSequence/>
</target>
<parameter name="transport.vfs.Streaming">true</parameter>
<parameter name="transport.PollInterval">1</parameter>
<parameter name="transport.vfs.FileURI">vfs:ftp://admin:admin@localhost</parameter>
<parameter name="transport.vfs.FileNamePattern">.*\.xml</parameter>
<parameter name="transport.vfs.ContentType">application/xml</parameter>

传输的文件部分写入目标目录,并由 WSO2 生成锁定文件。不幸的是,读取文件的其余部分没有附加到文件中。

有人知道我的配置有什么问题吗?

亲切的问候,

平子

4

1 回答 1

0

您需要使用文件地址 URI 设置 transport.vfs.Append=true 参数,以便附加到输出文件 [1]。

<address uri="vfs:file:///poc/services/inbound?transport.vfs.Append=true"/>

当您将其配置为 VFS 属性时,它不起作用。

[1] http://docs.wso2.org/display/ESB450/VFS+Transport

于 2013-10-23T16:45:42.183 回答