« Primeiros detalhes de GTA 5 Game Key Revealer, «revele» a chave ou serial dos seus jogos favoritos »

O Python é actualmente uma das mais utilizadas linguagens de programação, talvez pela sua reduzida curva de aprendizagem, talvez pela sua performance e rapidez de compilação, talvez pela sua versatilidade. Ou talvez por todas estas razões combinadas. O que é certo é que são inúmeras as coisas que podemos fazer com o Python,e uma delas é rapidamente criar um método de partilha de ficheiros acessível a partir de um simples browser.
python-logo-glassy

Para rapidamente partilhar os ficheiros, vamos fazer uso do módulo SimpleHTTPServer, pré-fornecido com o Python. Primeiro é necessário certificar-mo-nos que temos o Python instalado (se estiver a usar Linux, a grande parte das distribuições disponibiliza o Python pré-instalado ou simplesmente disponível nos repositórios). Caso esteja a usar Windows/Mac/outras variantes *unix, faça o download e instale.

Python instalado, está na altura de nos aventurarmos um pouco pela linha de comandos/terminal. Em Windows, basta premir Win + R e digitar cmd, em Linux abrir o terminal (por exemplo, no Ubuntu, em Aplicações»Acessórios»Terminal), e em Mac abrir a aplicação Terminal. Aí, basta digitar este belo e poderoso código:

python -m SimpleHTTPServer 45874

Este código simplesmente inicia o servidor Python na porta 45874 (aqui podem escolher um nº de porta qualquer, desde que essa não esteja actualmente a ser utilizada por um serviço). Se tudo correr bem, deverão obter algo como isto…

Se está em Windows, atenção, já que, derivado das reduzidas potencialidades da linha de comandos deste sistema :-D, a maneira mais fácil de criar a partilha é, estando já na pasta que quer partilhar, executar o seguinte comando:
C:\Python26\python.exe -m SimpleHTTPServer 45874

screenshot_002

O servidor partilhará então a pasta onde actualmente se encontra a consola, neste caso partilharia toda a minha Pasta Pessoal. Poderia, por exemplo, através do comando cd, apontar a consola à minha pasta “Documentos” e partilhar apenas essa pasta, correndo o comando a partir daí.

Relembro também que é necessário abrir a porta do sistema que indicamos no comando. Ou seja, neste caso seria necessário abrir a porta 45874. Por exemplo, no Ubuntu e Linux em geral, para abrir essa (e outras) porta do sistema, recomendo a ferramenta FireStarter:

screenshot_003

Para aceder então ao seu básico, mas igualmente útil e rápido servidor de ficheiros, basta abrir o browser e digitar o endereço, seguindo as directivas: http://ip:porta . Neste caso, e assumindo que o meu ip interno, de rede doméstica, é 192.168.1.64, seria http://192.168.1.64:45874.

CapturaEcra-Directory listing for - - Google Chrome

É bastante fácil navegar pelas directorias e subdirectorias, e para fazer download de ficheiros, basta um clique direito e…

screenshot_004Caso queira partilhar ficheiros com alguém fora da sua rede doméstica, é necessário ter em atenção duas coisas. Primeira, necessita de fornecer à pessoa com quer partilhar os ficheiros o seu IP externo (que pode ver qual é, por exemplo, no WhatMyIPAdress) e o nº da porta que escolheu, para a pessoa poder inserir no seu browser – http://ip:porta. Caso queira, pode “acoplar” ao seu IP um domínio mais amigável, veja como neste artigo. Segunda coisa, se se encontra ligado à Internet através de um router, deve aceder à página de administração do router e abrir a porta para a qual configurou o módulo Python. Se não sabe como abrir portas no seu router, vá ao PortForward, escolha o modelo do seu router e insira os dados, o resto está tudo lá explicado ;-)

Atenção, não partilhe o endereço do servidor com ninguém que não seja estritamente necessário, e assim que tiver completado a partilha do ficheiro, feche o Terminal/Linha de Comandos, terminando assim também com a janela aberta para a Web a partir do seu computador, voltando a “enclausurá-lo” por entre firewalls, antivírus e portas, mantendo-o completamente seguro das ameaças virtuais.

É um método básico, rápido e simples, mas bastante eficiente. Posso dizer que aqui na minha rede doméstica, consegui transferir ficheiros entre computadores a uma velocidade de ~1mb/s, ambos ligados por wireless (numa ligação à Internet standard de 4 MB).

screenshot_005

Valores bastante bons e que suplantaram os máximos que conseguia em transferências por via de pastas partilhadas na rede. Uma solução para o “desenrasque” que afinal se revela algo poderoso. Qualquer dúvida na partilha, instalação do Python, portas do sistema e do router, não hesitem em perguntar.

E fica a menção ao blog do João Pedro Pereira onde (re)vi a dica e adicionei mais algumas informações, o que culminou neste artigo.


Este artigo foi escrito por em 28 Dez, 2009, e está arquivado em Dicas, Internet. Siga quaisquer respostas a este artigo através do RSS 2.0. Você pode deixar uma resposta ou fazer um trackback do seu próprio site.

Todo e qualquer texto publicado (posts e/ou comentários) na Internet através deste sistema não reflecte, necessariamente, a opinião deste blog ou do(s) seu(s) autor(es). Os utilizadores que optarem por escrever um comentário no campo apropriado para tal comprometem-se, por sua vez, a não transmitir ou divulgar ameaças, pornografia infantil, material racista, textos que sejam ofensivos, difamatórios, caluniosos, preconceituosos ou viole a legislação em vigor no país. +Informações na página de Termos & Condições de Utilização.

Artigos Relacionados
11 comentários em “Crie rapidamente um servidor HTTP em Python para partilha de ficheiros”
  1. nao consegui… por favor me ajude…

    instalo o phyton e abro o cmd. digito aquele comando e fala q a sintaxe do comando é invalida…
    o que eu faço?

  2. deves termetido o user@… lol
    mete isto:
    python -m SimpleHTTPServer 45874

  3. Excelente artigo, sem dúvida bem mais completo, obrigado por ter colocado referência para o meu blog :).

    Abraço,
    João Pedro Pereira

  4. afonso, da erro pq tem q adiciona o diretorio do python no path do windows, fassa do geito que o Daniel Rodrigues disse!

  5. Arilson Mendes diz:

    Otimo post, chegando em casa vou testar, uma dica que vale muito, funcionando vai me resolver um problemão!! É como dizia um professor meu:
    ” Uma ideia tão boa que merecia ser minha!” :)
    Desculpe a brincadeira, obrigado e parabens!!

  6. Guilherme diz:

    Como faço para compartilhar com minha rede wireless?

  7. se nao tiver no meu windows como faço a tenho que ir em “Sistema “e fazer variavel como coloco

Deixe o seu comentário

(obrigatório)

(obrigatório e não será publicado)



:wink: :-| :-x :twisted: :) 8-O :( :roll: :-P :oops: :-o :mrgreen: :lol: :idea: :-D :evil: :cry: 8) :arrow: :-? :?: :!: