使用WSO2 VFS传输流式传输大型文件

时间:2013-10-23 09:05:13

标签: file streaming wso2 esb vfs

我有一个关于使用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生成锁定文件。不幸的是,读取文件的其余部分未附加到文件中。

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

亲切的问候,

的Heiko

1 个答案:

答案 0 :(得分: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