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() を呼び出すことです。

アドビのヘルプには、File オブジェクトにも仮想ディレクトリを使用できることが記載されています: http://livedocs.adobe.com/flashmediaserver/3.0/hpdocs/index.html

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

アドビのヘルプには、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>

要素 VirtualDirectoryForFile を有効にして機能させる必要があります。したがって、vHost.xml でオーバーライド属性が true に設定されていることを確認し、Server.xml で VirtualDirectorForFile の enable 属性が true に設定されていることを確認する必要があります。

于 2012-10-25T09:40:51.897 に答える