Un marco experimental de servidor FTP. Al proporcionar una clase de controlador simple que responde a un puñado de métodos, puede tener un servidor FTP completo.
Algunos casos de uso de muestra incluyen datos persistentes para:
Hay una muestra de controlador en memoria disponible; consulte las instrucciones de uso a continuación para los pasos para usarlo.
La documentación completa para el paquete está disponible en Godoc
go get github.com/yob/graval
Para iniciar un servidor FTP, deberá proporcionar un controlador que hable a su capa de persistencia: el contrato del controlador requerido se enumera a continuación.
Hay una muestra de controlador en memoria disponible como demostración. Puedes construirlo con este comando:
go install github.com/yob/graval/graval-mem
Entonces ejecutarlo:
./bin/graval-mem
Y finalmente, conéctese al servidor con cualquier cliente FTP y los siguientes detalles:
host: 127.0.0.1
username: test
password: 1234
Su controlador debe implementar una serie de métodos simples. Puede ver el contrato requerido en los documentos del paquete en Godoc
FTP es un protocolo increíblemente inseguro. Tenga cuidado al obligar a los usuarios a autenticarse con un nombre de usuario o contraseña que sean importantes.
Esta biblioteca se distribuye bajo los términos de la licencia MIT. Consulte el archivo incluido para obtener más detalles.
Todas las sugerencias y parches dan la bienvenida, preferiblemente a través de un repositorio de Git del que puedo sacar. Si esta biblioteca le resulta útil, hágamelo saber.
Hay una gama de RFC que juntos especifican el protocolo FTP. En orden cronológico, los más útiles son:
Para un resumen de inglés que es algo más legible que el RFCS, y proporciona algunos comentarios sobre qué características son realmente útiles o relevantes 24 años después de que se publicó RFC959:
Para una lección de historia, consulte el Apéndice III de RCF959. Enumera los documentos RFC anteriores (obsoletos) que se relacionan con las transferencias de archivos, incluido el Ye Old RFC114 de 1971, "un protocolo de transferencia de archivos"
Esta biblioteca se basa en gran medida en EM-FTPD, un marco FTPD con objetivos de diseño similares dentro de los ecosistemas Ruby y EventMachine. Funcionó lo suficientemente bien, pero ya sabes, las devoluciones de llamada y los bucles de eventos me hacen algo.