VLC Server Media root

0

Quando executo vlc como:

vlc -I http

Eu abro os usuários para navegar em toda a estrutura de diretórios do meu sistema. Isso é demais.

Por exemplo, na página link , posso clicar em Edit no campo Entrada e, em seguida, em Browse . No pop-up, posso continuar a clicar em '..' .

Eu quero abrir este servidor para que eu possa acessá-lo remotamente, mas não quero expor toda a estrutura de diretórios do meu sistema.

Como posso restringir a funcionalidade de navegação a uma subárvore específica?

    
por Geoff 21.11.2010 / 23:34

2 respostas

0

Como sugerido por um desenvolvedor em este fórum , modifiquei browse.xml para dar o comportamento desejado.

Eu adicionei um predicado ao arquivo browse.xml para verificar se o diretório atual começa com /library/ (o caminho que desejo criar a raiz).

<vlc id="if" param1="file.name value '/library/' 9 strncmp 0 =" />
...
<vlc id="end" />

Onde 9 é o tamanho do caminho (no meu caso '/ library /'. Além disso, adicionou uma entrada a cada listagem de diretórios para vincular de volta a essa raiz desejada.

<element type="directory" size="" date="" path="/library/" name="Media Root" extension="" />

O arquivo browse.xml completo é agora:

<vlc id="end" />

<root>
<vlc id="if" param1="url_param 1 =" />
  <vlc id="rpn" param1="'dir' url_extract" />
  <element type="directory" size="" date="" path="/library/" name="Media Root" extension="" />
  <vlc id="foreach" param1="file" param2="directory" />
    <vlc id="if" param1="file.name value '/library/' 9 strncmp 0 =" />
      <vlc id="if" param1="file.basename value '.' 1 strncmp 0 != file.basename value '..' 2 strncmp 0 = |" />
        <element type="<vlc id="value" param1="file.type" />" size="<vlc id="value" param1="file.size" />" date="<vlc id="value" param1="file.date" />" path="<vlc id="value" param1="file.name value xml_encode" />" name="<vlc id="value" param1="file.basename value xml_encode" />" extension="<vlc id="value" param1="file.ext value xml_encode" />" />
      <vlc id="end" />
    <vlc id="end" />
  <vlc id="end" />
<vlc id="end" />
</root>

Se você tiver uma maneira melhor, sugira. Outra opção para segurança é editar o arquivo .hosts para que somente o tráfego local possa interagir com o servidor VLC. Você pode então configurar o servidor VPN ponto a ponto para criptografar e proteger com senha o acesso. (Detalhes estão fora do escopo desta resposta.)

    
por 29.11.2010 / 21:33
1

Edite %ProgramFiles(x86)%\VideoLAN\VLC\http\requests\browse.xml como Admin (você não precisa reiniciar o VLC) como abaixo. Adicione as 3 linhas marcadas com + (que você não deve incluir).

 <root>
 <vlc id="if" param1="url_param 1 =" />
   <vlc id="rpn" param1="'dir' url_extract" />
+  <element type="directory" size="" date="" path="X:\SomeFolder" name="Media Root" extension="" />
   <vlc id="foreach" param1="file" param2="directory" />
+    <vlc id="if" param1="file.name value 'X:\SomeFolder' 13 strncmp 0 =" />
     <vlc id="if" param1="file.basename value '.' 1 strncmp 0 != file.basename value '..' 2 strncmp 0 = |" />
       <element type="<vlc id="value" param1="file.type" />" size="<vlc id="value" param1="file.size" />" date="<vlc id="value"  param1="file.date" />" path="<vlc id="value" param1="file.name value xml_encode" />" name="<vlc id="value" param1="file. basename value xml_encode" />" extension="<vlc id="value" param1="file.ext value xml_encode" />" />
     <vlc id="end" />
+    <vlc id="end" />
   <vlc id="end" />
 <vlc id="end" />
 </root>

Observe que 'X:\SomeFolder' 13 o 13 se o comprimento da string X:\SomeFolder (para comparar apenas o início do caminho.

A postagem original vem do link

    
por 31.10.2012 / 00:24