No melhor de meu conhecimento, o http.server do Python não suporta FTP.
Embora o Python tenha uma biblioteca de FTP , essa é essencialmente uma biblioteca cliente destinada a ajudar seus scripts comunicar com os servidores FTP existentes. O Python não tem um servidor FTP "embutido", infelizmente.
Considerando isso, você tem duas opções: usar uma biblioteca de terceiros ou codificar uma solução de transferência de arquivos por conta própria. O http.server suporta CGI com python -m http.server --cgi
, portanto é pelo menos teoricamente possível usar este mecanismo para transferir dados.
Para uma simples biblioteca de servidores FTP de terceiros, talvez você queira examinar o pyftpdlib (que tem documentação , incluindo um básico tutorial página).
Em relação ao Putty, se você quiser SSH no PC, o Windows não tem um servidor SSH nativo, tanto quanto eu sei. O Google pode ajudar nesse sentido, mas, para uso doméstico, MobaSSH ou FreeSSHd pode ser uma solução aceitável para você.
Recentemente, chegou ao meu conhecimento que versões suficientemente atualizadas do Windows 10 que possuem o Windows Subsystem para Linux (WSL) instalado pode ter algumas opções para o SSH nativo. No entanto, não posso fazer nenhuma sugestão sobre se isso seria suficiente para suas necessidades ou não.
Usando o pyftpdlib
Se você decidir usar o pyftpdlib, você pode instalá-lo com o pip:
pip install pyftpdlib
Para um servidor de linha de comando simples (semelhante ao http.server), você pode usar o seguinte:
python -m pyftpdlib
Isso criará um servidor FTP somente leitura com uma conta anônima. Note que você pode habilitar a escrita (uploads) com -w
, assim como especificar outras opções, incluindo interface específica (se houver), porta e diretório de FTP:
python -m pyftpdlib -w -i localhost -p 8081 -d "C:\path\to\FTP\anon"
Uma lista completa da opção de linha de comando está disponível com python -m pyftpdlib -h
.
Notas do script pyftpdlib
Se você deseja executar o pyftpdlib a partir dos scripts de tutorial de exemplo no Windows, deve ter em mente o seguinte:
-
Os separadores de diretório do Windows precisarão de escape (ou seja, você precisará usar
\
entre as pastas, em vez de apenas\
). Isso não se aplica a servidores iniciados por meio da linha de comando (acima). -
Se você receber erros de soquete, isso geralmente ocorre devido a um problema de firewall / permissão com o Windows ou com uma porta já em uso. De qualquer forma, corrija o problema ou escolha uma porta diferente.
-
O atributo
perm=
deauthorizer.add_user
é opcional, mas, se omitido, o usuário assume como padrão o acesso somente leitura. Para ver uma lista do que significam todas as permissões, você deve dar uma olhada na documentação da API . / p>