Qual servidor HTTP ou FTP leve é ​​bom para uma simples transferência de arquivos? [fechadas]

25

Esta pergunta é uma continuação de Como copiar arquivos para um computador não confiável? , como não parece haver um aplicativo dedicado para esse fim, agora estou procurando um servidor http ou ftp como alternativa. Mais especificamente, estou procurando por um servidor leve que seja utilizável para transferência simples de arquivos únicos entre computadores. Com isso, quero dizer que deve funcionar como substituto do rsync / scp para obter arquivos de um computador para outro, não como um servidor Web clássico. Além disso, deve:

  • executar no espaço do usuário
  • ser trivial para configurar (ou seja, nenhum arquivo de configuração, tudo possível via linha de comando)
  • suporte nome de usuário / senha
  • suporte continuação de downloads
  • suporta a exportação de arquivos únicos em vez de diretórios inteiros

A resposta do dbr à pergunta anterior se aproxima, mas é claro que é apenas um hack ad hoc que carece de muitos recursos úteis.

Grumbel
fonte
Basta usar o Apache2 mais rápido que o python SimpleHTTPServer cerca de 4x.
o0omycomputero0o

Respostas:

31

Costumo usar esse hack rápido do Python para servir um diretório via HTTP.

python -m SimpleHTTPServer &

servirá o diretório atual.

Por padrão, ele se liga à porta 8000.

Para escolher outra porta:

python -m SimpleHTTPServer 9090 &

Se você escolher uma porta menor que 1024 no * nix, poderá precisar de privilégios de root, caso contrário, o bind () falhará.

nerd
fonte
3
Realmente não sei por que essa pergunta foi encerrada. A pergunta e a resposta foram ambas muito úteis.
usar o seguinte código
8
Ou o equivalente ao Python 3:python3 -m http.server
Eliran Malka 14/02
6

Alguém no SO me apontou para Woof . Um httpd mínimo em python com uma interface otimizada apenas para esses usos. Na verdade, ele não atende a todos os seus requisitos, mas, ao especificar o número de vezes que ele será conectado, você poderá usar o "Você está pronto? Estou iniciando o servidor agora". abordagem para garantir a transferência.

Para permitir que uma (1) conexão seja baixada thisfilena porta 8080, basta executar

$ woof thisfile

É tão fácil.

Aqui está o original bastante abusado . Se você gosta, vá votar no Nate.

dmckee
fonte
Também funciona muito bem para o "carregamento" (no caso de você precisa de um arquivo de um usuário que não podem ou não instalar um servidor em si)
Golimar
3

Você pode experimentar os webfs disponíveis no repositório Ubuntu:

Webfs (aka webfsd) é um servidor HTTP simples para conteúdo puramente estático. Você pode usá-lo para veicular o conteúdo de um servidor FTP via HTTP, por exemplo. Também pode ser usado para exportar rapidamente alguns arquivos iniciando um servidor httpd em alguns segundos, sem editar primeiro os arquivos de configuração.

Outra opção é o HFS (Http File Server) , um aplicativo do Windows que funciona bem no Wine .

HFS (Http File Server) é um software de compartilhamento de arquivos que permite enviar e receber arquivos. Você pode limitar esse compartilhamento a apenas alguns amigos ou ser aberto a todo o mundo. O HFS é diferente do compartilhamento clássico de arquivos, porque não há rede. [...] Como na verdade é um servidor web, seus amigos podem baixar arquivos como se estivessem baixando de um site usando um navegador.

Nagul
fonte
1
O que há com os votos negativos aqui? O OP solicitou servidores http simples e as pessoas os ofereceram. Então qual é o problema.
dmckee
HFS também funciona muito bem para "Upload" (no caso de você precisa de um arquivo de um usuário que não podem ou não instalar um servidor em si)
Golimar
1

Ignore se você não está aberto a alternativas, mas o fato de estar disposto a instalar um servidor HTTP sem preferências mostra que você deseja concluir a tarefa de transferir um arquivo mais do que como ele é feito -

Posso recomendar que você instale um servidor FTP?

Isso permitirá que você faça praticamente tudo o que precisa e geralmente é muito fácil de configurar; você pode até configurar a porta para usar 80, se for um requisito.

William Hilsum
fonte
1
É claro que o FTP também seria bom, mas a maioria dos servidores FTP que conheço não é exatamente leve e vem com uma bagagem extra feia que os torna impróprios para transferências simples de arquivos únicas (ou seja, exige direitos de root, contas na máquina para acesso por senha) , manipulação de diretório não flexível, etc.). Com o Pure-FTPd, eu não conseguia nem descobrir como iniciá-lo como usuário não root.
Grumbel
1
Acordado. É chamado de File Transfer Protocol por um motivo. O HTTP, por outro lado, é o HyperText Transfer Protocol. Provavelmente, você não está interessado no HyperText no momento.
Lee B
1
O FTP não é uma idéia estúpida, mas você tem uma sugestão para uma que é simples de configurar, como o OP solicitou?
dmckee
1
A vantagem do http é que todo computador de uso geral possui um navegador da Web e o usuário fica confortável em usá-lo. OK, ele suporta ftp também, mas se você vai usar um navegador web de qualquer maneira ...
dmckee
2
Wil, não estamos falando de servidores de uso geral como o Apache aqui. Estamos falando de ferramentas mínimas para fins especiais. O Woof faz o chttpd parecer pesado .
dmckee
0

Posso recomendar http://code.google.com/p/pyftpdlib/ ?
É leve, faça o download da fonte e escreva um script Python (basta copiar a parte de início rápido da página inicial, 5-6 linhas, definir nome de usuário e senha, diretório inicial, etc.)
Eu uso-o para uso pessoal transferência de arquivos pc para pc (no Ubuntu Hardy). Um problema conhecido (e posso suportar) é que ele não consegue lidar bem com Unicode (não ASCII).

sunqiang
fonte
0

A resposta é simples: thttpd. Ele ganha em desempenho, uso de memória e segurança. E por segurança, quero dizer que é seguro em virtude do design competente e não faz nada estúpido, não que ele tenha todos os tipos de sinos e assobios de "segurança". Também é quase ideal no que diz respeito ao tamanho e simplicidade.

Se você precisar ainda menor e mais simples, o BusyBox possui um httpdapplet que também pode atender às suas necessidades.

Não tenho certeza se eles atendem a alguns de seus requisitos mais difíceis, como servir arquivos únicos, mas você pode fazer isso com um wrapper que coloca links simbólicos na raiz http. Se você fizer isso com o thttpd, no entanto, precisará desativar as restrições de link simbólico.

(Eu sei que esta pergunta é antiga, mas é um resultado excelente no Google e as respostas existentes são tudo menos leves.)

R ..
fonte
2
thttpdcostumava ser a minha resposta favorita também, mas foi removida do Debian, Ubuntu e RedHat em 2011 porque era "órfã, possui bugs críticos para o lançamento e está totalmente inativa". Eu não recomendaria mais.
poolieby
0

Você também pode tentar o HFS, também chamado de Servidor de Arquivos HTTP ( http://www.rejetto.com/hfs/ ). Embora seja um aplicativo do Windows, diz-se que ele funciona bem usando o WINE. Sua manutenção muito baixa e até novatos completos que nem sabem o que é um servidor de arquivos poderão usá-lo sem muito esforço. Ele suporta a funcionalidade de arrastar e soltar e você pode até controlar quais endereços IP podem acessar os arquivos, dar suporte às contas dos usuários e baixar o controle de velocidade.

TenaciousD
fonte
1
Como isso responde à pergunta? Seja mais específico.
usuário 99572 está bem