Uma estrutura experimental do servidor FTP. Ao fornecer uma classe de motorista simples que responde a um punhado de métodos, você pode ter um servidor FTP completo.
Alguns casos de uso de amostra incluem dados persistentes para:
Existe um driver de amostra em memória disponível - consulte as instruções de uso abaixo para obter as etapas para usá -lo.
Documentação completa para o pacote está disponível no GODOC
go get github.com/yob/graval
Para inicializar um servidor FTP, você precisará fornecer um driver que fale com sua camada de persistência - o contrato de driver necessário está listado abaixo.
Há um driver de amostra na memória disponível como uma demonstração. Você pode construí -lo com este comando:
go install github.com/yob/graval/graval-mem
Em seguida, execute:
./bin/graval-mem
E, finalmente, conecte -se ao servidor com qualquer cliente FTP e os seguintes detalhes:
host: 127.0.0.1
username: test
password: 1234
Seu motorista deve implementar vários métodos simples. Você pode ver o contrato exigido no pacote Docs on Godoc
O FTP é um protocolo incrivelmente inseguro. Tenha cuidado ao forçar os usuários a autenticar com um nome de usuário ou senha que são importantes.
Esta biblioteca é distribuída nos termos da licença do MIT. Consulte o arquivo incluído para obter mais detalhes.
Todas as sugestões e patches são bem -vindos, de preferência por meio de um repositório Git de onde eu possa puxar. Se esta biblioteca for útil, por favor me avise.
Há uma variedade de RFCs que juntos especificam o protocolo FTP. Em ordem cronológica, os mais úteis são:
Para um resumo em inglês, é um pouco mais legível que os RFCs e fornece alguns comentários sobre quais recursos são realmente úteis ou relevantes 24 anos após a publicação do RFC959:
Para uma lição de história, consulte o Apêndice III do RCF959. Ele lista os documentos RFC anteriores (obsoletos) relacionados a transferências de arquivos, incluindo o antigo RFC114 de 1971, "Um protocolo de transferência de arquivos"
Esta biblioteca é fortemente baseada no EM-FTPD, uma estrutura FTPD com metas de design semelhantes nos ecossistemas Ruby e EventMachine. Funcionou bem o suficiente, mas você sabe, retornos de chamada e loops de eventos me fazem algo.