我有一个应用程序,不是将其流保存在其应用程序目录中,而是通过在我的application.xml中使用以下内容来保存其他地方:
<Application>
<StreamManager>
<VirtualDirectory>
<!-- Specifies application specific virtual directory mapping for streams. -->
<Streams>/;C:\pathtomystreams</Streams>
</VirtualDirectory>
</StreamManager>
</Application>
这很好用。 现在,我要做的是获取该目录中的流列表。我知道如何做的唯一方法是使用File对象,创建我的streams文件夹的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元素的override属性设置为“yes”。
但我没有找到正确的道路。当我在main.asc中编写这样的代码时:
var f = new File("/mystream.flv");
trace(f.toString());
生成的跟踪读取 C:\\ mystream.flv 而不是 C:\ pathtomystreams \ mystream.flv 有趣的是,它也忽略了我可能添加到vHosts Application.xml
中的任何VirtualPath可能有一些我缺少的配置设置。 有没有人知道我在这里可能缺少什么,或者我做错了什么?
答案 0 :(得分:2)
我忽略了Server.xml中的另一个配置设置:
<Root>
<Server>
<Security>
<!-- This is disabled by default. -->
<VirtualDirectoryForFile enable="true"/>
</Security>
</Server>
<Root>
必须启用元素VirtualDirectoryForFile才能使其正常工作。 因此,您必须确保在vHost.xml中将override属性设置为true,并确保将Server.xml中VirtualDirectorForFile上的enable属性设置为true。