1

我有一个应用程序,它不将其流保存在其应用程序目录中,而是通过在我的 application.xml 中使用以下内容保存在其他地方:

<Application>
<StreamManager>
    <VirtualDirectory>
          <!-- Specifies application specific virtual directory mapping for streams.   -->
        <Streams>/;C:\pathtomystreams</Streams>
    </VirtualDirectory>
</StreamManager>
</Application>

这工作得很好。现在,我要做的是获取该目录中的流列表。我知道如何做到这一点的唯一方法是使用 File 对象,创建我的流文件夹的 File 对象,然后调用 File.list()。

Adobe 帮助提到我也可以将虚拟目录用于 File 对象: http: //livedocs.adobe.com/flashmediaserver/3.0/hpdocs/index.html

<FileObject>
    <VirtualDirectory>/;C:\pathtomystreams</VirtualDirectory>
</FileObject>

Adobe 帮助在这里没有提到 FileObject 标记应该嵌套在哪里,但是查看 vHosts Application.xml 指出它应该在 Application/ScriptEngine 中。我还在 vHosts Application.xml 中将 FileObject 元素的覆盖属性设置为“yes”。

但我只是没有找到正确的道路。当我在 main.asc 中编写这样的代码时:

var f = new File("/mystream.flv");
trace(f.toString());

结果跟踪读取C:\\mystream.flv而不是C:\pathtomystreams\mystream.flv 有趣的是,它还忽略了我可能添加到 vHosts Application.xml 中的任何 VirtualPath

可能我缺少一些配置设置。有谁知道我在这里可能会错过什么,或者我做错了什么?

4

1 回答 1

2

我忽略的 Server.xml 中确实有另一个配置设置:

<Root> 
    <Server> 
        <Security> 
            <!-- This is disabled by default. -->
            <VirtualDirectoryForFile enable="true"/>
        </Security>
    </Server>
<Root>

The element VirtualDirectoryForFile has to be enabled to get it to work. So you have to make sure to have the override attribute set to true in the vHost.xml, and make sure that the enable attribute on VirtualDirectorForFile in the Server.xml is set to true.

于 2012-10-25T09:40:51.897 回答