• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

magician

StarLight File Server

27 mensagens neste tópico

Titulo do Projecto: StarLight File Server

Última Versão: 0.2Beta

Líder do Projecto: magician

Download: http://www.portugal-a-programar.org/forum/index.php?action=dlattach;topic=34194.0;attach=3770

Linguagem: Java

Sistema Operativo: Todos os sistemas que suportem JavaSE6 ou mais.

Descrição do Projecto: Servidor simples e leve que permite partilhar ficheiros sob o protocolo HTTP. Irá permitir partilhar os ficheiros de um directório recursivamente ou não. Será possível aceder ao servidor com qualquer Browser, WGet ou qualquer outra aplicação que suporte o protocolo HTTP 1.1.

No fundo será algo género apache mas extremamente mais leve totalmente focado para a partilhas de ficheiros.

Testado em Linux, Windows e Mac

Imagens do novo Interface

img1m.png

width=750 height=446http://img26.imageshack.us/img26/1908/img2d.png[/img]

width=750 height=446http://img8.imageshack.us/img8/9446/img3n.png[/img]

width=750 height=262http://img8.imageshack.us/img8/3056/img4w.png[/img]

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

hmmm interessante.

Ou seja a criação de um apache dedicado apenas a partilha de ficheiros. Send files. . . mas vai ser por conecçao através da porta 80??? desculpa mas nao entendi muito bem como fará a comunicação

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

A porta pode ser definida pelo utilizador, 80 ou qualquer outra, caso seja a 80 no caso de utilizar o browser basta meter http://host/ no caso de ser outro é só acrescentar a porta tipo http://host:4444

O interface será feito em HTML e CSS sem imagens para ficar o mais leve possível.

Inicialmente tinha previsto criar uma estrutura de dados que representa-se a estrutura de ficheiros  a partilhar, mas estou agora a trabalhar numa dinâmica que ao invés de indexar tudo, vai indexando e removendo da estrutura consoante os pedidos que são feitos, assim ao partilhar um directório com 10000 sub directórios e em que 90% dos casos os utilizadores fica pelo root "/", não tem lógica ter tudo o resto indexado, assim ele irá indexar conforme é pedido.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Versão Alfa 0.1 já está bastante estável embora ainda tenha algumas coisas a ajustar.

Podem descarregar esta versão que se encontra em anexo, mais tarde o anexo será removido.

O programa apenas foi testado em Linux em em principio deve funcionar em também em Windows desde que tenham o JavaSE6 ou superior.

Para executar basta fazer java -jar StarlightFS PATH PORT

Aguardo Feedback lol

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Testado e a funcionar em

Linux e Mac OS X, 10.5

Alguém me pode dar reporte para windows ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Aqui em Windows XP também funciona bem. Testei uma directoria e listou-me os seus conteúdos, os códigos http também estão correctos, no caso do notfound... Acho que vai em bom caminho :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

:P Fixe sendo assim já foi testado e está operacional nos 3 principais SO's.

Penso conseguir um RC nos próximos dias já com um layout decente lol

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ainda hoje devo lançar a versão 0.2Beta, pode ver algumas imagens do novo interface no post inicial :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Beta 0.2

Novo Interface, suporte de mime types entre outros melhoramentos internos e de performance.

Testei e o servidor funciona a 100% com o FlashGot.

Espero respostas :)

[anexo apagado pelo Administrador]

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

não precebo muito de java.. mas tava aqui a testar o programa e abri o cmd no windows e pus: java StarlightFS.jar e isto deu-me uns erros quaisquer.. n sei se sou eu k tou a faxer mal

C:\Documents and Settings\André>java StarlightFS.jar

Exception in thread "main" java.lang.NoClassDefFoundError: StarlightFS/jar

Caused by: java.lang.ClassNotFoundException: StarlightFS.jar

        at java.net.URLClassLoader$1.run(Unknown Source)

        at java.security.AccessController.doPrivileged(Native Method)

        at java.net.URLClassLoader.findClass(Unknown Source)

        at java.lang.ClassLoader.loadClass(Unknown Source)

        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)

        at java.lang.ClassLoader.loadClass(Unknown Source)

        at java.lang.ClassLoader.loadClassInternal(Unknown Source)

Could not find the main class: StarlightFS.jar.  Program will exit.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Como é um jar deves meter java -jar StarlightFS PATH PORT se não meterem nem path e port ele mete a pasta actual e a trabalhar na porta 8080

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Testei esta nova versão em Windows, e sofreu uns melhoramentos, como dito lá em cima. No entanto, encontrei um pequeno erro, ou pelo menos não ache que deva funcionar assim:

Corri o servidor com as opções por default (sem argumentos), e nessa pasta tenho algumas subpastas. Na interface, ao clicar na pasta (que apresenta com tamanho 0B), dá o código http 200, mas o conteúdo não é mostrado. na consola do servidor obtenho:

/127.0.0.1 -> /twitter

E:\antivirus\dls\.\twitter (O acesso Ú negado)

twitter - 0/0

E:\antivirus\dls\ é a pasta onde estou a correr o servidor. Tenho permissões na pasta e sou administrador nessa conta.

Por fim, na parte dos download: experimentei com o FDM "capado" a 1 bp/s de velocidade. Só vi falhar na parte do Content-type, que nos cabeçalhos vem a vazio. Agora, acho que só falta mesmo implementares o download de conteúdos parciais, para suportar fazer o download de várias partes do ficheiro ao mesmo tempo.

11:16:01 22-03-2009 Iniciando transferência...

11:16:01 22-03-2009 GET /geexbox-1.2.1-en.x86_64.glibc.iso HTTP/1.1

Referer: http://localhost:8080/

Host: localhost

11:16:06 22-03-2009 HTTP/1.1 200 OK

Content-type:

Last-modified: Mon Feb 23 12:36:20 GMT 2009

Content-length: 21157888

Connection: close

Server: StarLight File Server

Date: Sun Mar 22 11:16:01 GMT 2009

11:16:06 22-03-2009 Abrindo ficheiro no disco...

11:16:06 22-03-2009 Sucesso

11:16:06 22-03-2009 [secção 1] - Iniciada

11:16:06 22-03-2009 [secção 1] - Transferindo

11:16:06 22-03-2009 Criando nova secção...

11:16:06 22-03-2009 GET /geexbox-1.2.1-en.x86_64.glibc.iso HTTP/1.1

Referer: http://localhost:8080/

Range: bytes=10578944-

Host: localhost

11:16:12 22-03-2009 HTTP/1.1 200 OK

Content-type:

Last-modified: Mon Feb 23 12:36:20 GMT 2009

Content-length: 21157888

Connection: close

Server: StarLight File Server

Date: Sun Mar 22 11:16:06 GMT 2009

11:16:12 22-03-2009 O servidor não aceita retomada de transferência. Não pare a transferência ou terá que reinicia-la.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O Content-type ele tem uma base de dados bastante grande, mas o que não encontra usa "" vou mudar para um Content-type default para não ser vazio.

Isso das permissões é estranho por algum motivo ele considera essa pasta como um ficheiro dai o 0/0, experimenta arrancar com o path completo desde o C:\\... sff xD

Pá isso de continuar transferências não tou a ver como faço :\ já me tinha lembrado mas não sei como essa parte do protocolo funciona, vou ver se encontro alguma coisa sobre o assunto.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Dando o caminho completo, ele mostra as pastas em cima, sem referencias às dimensoes, mas continua sem mostrar os respectivos conteúdos. A consola não dá erros, mas nos heads do Firefox, dá-me erro 404, com content-length a zero.

E:\antivirus\dls>java -jar StarlightFS.jar E:\antivirus\dls\ 80

Servidor em escuta no port 80

/127.0.0.1 -> /

/127.0.0.1 -> /favicon.ico

/127.0.0.1 -> /favicon.ico

/127.0.0.1 -> /\twitter/

/127.0.0.1 -> /\twitter/

/127.0.0.1 -> /twitter/

/127.0.0.1 -> /twitter/

de notar aquele /\twitter/, foi quando tentei aceder pelos links do browser, tens aí no teu html gerado um problema com as barras.

Quanto aos downloads parciais, eu tb não percebo muito, mas tens nos cabeçalhos de pedido aquele campo Range: bytes=10578944-, que te deve indicar os bytes pretendidos inicio-fim. É uma questão de pegares nesse valor, abrires o ficheiros, ir contando os bytes e começar a devolver dentro daquela range (digo eu, penso que seja assim...)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Hummm thx XD vou ver isso então. Tambem estou a implementar um limitador de upload para permitir limitar o upload.

@softclean

Hummm esse /\ é muito estranho ai ai o windows dá cabo de mim lol tem de ser diferentes dos outros até nos path lol isso é ai um problema na conversão do path para alias tenho de analisar bem isso

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Em windows não te preocupes com os \, se usares / como separador funciona na mesma. :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pois mas eu fiz a conversão, o Java tem o File.separator que dá a String default do S.O para separador do path, mas deve tar a dar uma algum problema no replace ou assim.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Só aqui uma pequena opinião xD

A versão 0.1RC já irá suportar um ficheiro de configuração ao invés do normal input pela linha de comandos, pensei em criar um GUI muito simples basicamente limitado a um tray para configurar o servidor, assim seria uma alternativa ao ficheiro de configuração. O que acham ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu também acho que não. Podia ser tipo o wampserver, suficientemente fácil para configurar pelo menu, e ao mesmo tempo bastante flexível, por permitir editar o ficheiro de configuração do Apache :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sim a ideia seria manter as o ficheiro de configs e atenção que não é ficheiro de configs do apache é um ficheiro de configs próprio super simples! Só queria saber o que acham da config por tray, acho que é a melhor opção para fast configs e permite ligar e desligar o servidor facilmente sem sair do programa.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ter uma opção de tray será uma vantagem, mas não deve ser a única opção até porque o suporte para tray pode não funcionar em todos os sistemas operativos ou gestores de janelas, se pensarmos em Linux.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pois e até pk em servidores pode nem haver parte gráfica dai manter também a opção de ficheiro de config e talvez a opção de input pela linha de comandos mas só do path.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora